向上转型:动态绑定 [Java]
查了些网上的资料,发现如果子类向上转型为父类,则会遗失掉父类中没有定义的方法,而除了private的属性外,其他的属性都会被父类的属性覆盖。
<父类引用指向子类对象>
<new对象的内存情况:①:为所有的成员变量分配内存空间并自动初始化为默认值
②: 显式初始化;③:调用构造方法;④:对象的引用赋值给变量>
<子类对象在构建的时候,先构建了一个父类对象(copy?)所有的成员变量和方法;
然后重写成员变量和成员方法;只是覆盖而不是delete;父类成员还在>
<子类引用子类中被隐藏的父类成员?强制转换成父类,将视窗转向父类内容>
例如如下程序中,son是一个Father类型的,指向Son类型的对象的引用。所以,调用printTest时,打印的都是子类Son的属性(调用的Son的printTest()方法)。
而当用System.out.println(Son.var2)这样的形式输出时,除了Son的私有属性外,输出的都是Father类的属性值。
而且当调用son.printTest2()时,则出现错误,无法编译。
Father son = new
Son();就是一个向上转型。一开始无法理解为什么System.out.println(Son.var2)输出的是父类Father的属性值,son毕竟是指向一个Son类型的对象啊。下面是我后来的一种想法,比较通俗,如有谬误,请高手指正:
当一个儿子长大成人娶妻生子之后,他便“向上转型”为一个父亲了,呵呵,他除了非常私有的(private)一些情况保持不变外,如姓名,老婆的名
字等
相关文档:
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--每页显示记录条数
@currentpage int output,--第几页
@orderid nvarchar(50),--主键排序
@sort int,--排序方式,1表示升序,0表示降序排列
......
类的初始化和对象初始化是 JVM 管理的类型生命周期中非常重要的两个环节,Google 了一遍网络,有关类装载机制的文章倒是不少,然而类初始化和对象初始化的文章并不多,特别是从字节码和 JVM 层次来分析的文章更是鲜有所见。
本文主要对类和对象初始化全过程进行分析,通过一个实际问题引入,将源代码转换成 JVM 字节码后, ......
2009-12-20 22:15:02
今天花了一天时间把传智播客的JAVA SE高级视频1 API看完了,还看了一部分高级食品2 IO的视频,以下是API的笔记。
API: Application Programming Interface 应用程序编程接口
windows API:windows系统提供的
JAVA API:JDK中提供的各种java类(掌握常用的API ......
<?xml version="1.0" encoding="UTF-8"?>
<root>
<person id="1">
<username >xiaoma</username>
<password>xiaoma</password>
</person>
<person id="2">
<username>manager</username> ......