ily521125 发表于 2013-12-5 20:32
继承中的构造器调用:
完美恋爱 发表于 2013-12-5 20:56
可是在子类中的i和父类中的i不是一个i吧!而且不是只能调用父类本身的成员变量吗?那为什么还会把子类中 ...
ily521125 发表于 2013-12-5 21:05
具体的说,就是若果你没有继承Super类的话,你Demo类中的构造方法中写的i+=5是不对的会报错,因为Demo类 ...
ily521125 发表于 2013-12-5 21:05
具体的说,就是若果你没有继承Super类的话,你Demo类中的构造方法中写的i+=5是不对的会报错,因为Demo类 ...
刘敏 发表于 2013-12-5 21:32
Super d=new Demo();这句话内涵很丰富:
1. 先在堆内存中分配一个Demo对象,初始化 i=0。
2. 执行父类的构 ...
完美恋爱 发表于 2013-12-5 21:38
还有一个疑惑,确实,i是继承过来的,可是d是父类的引用,所以调用的d.i的i应该是在父类范围内的i,就是 ...
完美恋爱 发表于 2013-12-5 21:38
还有一个疑惑,确实,i是继承过来的,可是d是父类的引用,所以调用的d.i的i应该是在父类范围内的i,就是 ...
完美恋爱 发表于 2013-12-5 21:38
还有一个疑惑,确实,i是继承过来的,可是d是父类的引用,所以调用的d.i的i应该是在父类范围内的i,就是 ...
ily521125 发表于 2013-12-5 21:47
java允许父类的引用变量引用它的子类的实例
Super d=new Demo();这种类型转换时自动完成的,父类转换成了 ...
四五六七八 发表于 2013-12-5 22:01
哥们 有一点关键的你没有搞明白 Super d=new Demo();这句话是在堆内创建一个Demo对象 并没有Super对 ...
完美恋爱 发表于 2013-12-5 22:02
class Super
{
int i=0;
ily521125 发表于 2013-12-5 22:12
那你认为是几呢?你把父类引用子类的实例有转换成子类,它还是具有父类和子类的属性啊,这块儿我建议你看 ...
完美恋爱 发表于 2013-12-5 22:17
我感觉应该是5啊!因为向下转型后调用的就是自身的i了啊!
完美恋爱 发表于 2013-12-5 22:10
你说的我知道,父类引用指向子类对象,这跟我问的 那个没关系
ily521125 发表于 2013-12-5 22:26
如果你非要让它输出是主函数里的i的话,就直接输出i这样结果就是5了
完美恋爱 发表于 2013-12-5 22:37
这个我之前试过了,就是我想说的意思是,我明明都向下转型了,这时调用的i难道不应该是子类里的i吗?
举 ...
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |