黑马程序员技术交流社区
标题:
为什么这点代码运行后会输出两次 Boss呢
[打印本页]
作者:
无霜子
时间:
2015-5-6 19:41
标题:
为什么这点代码运行后会输出两次 Boss呢
class Employee{
public Employee(){
hello();
}
void hello() {
System.out.println("Employee");
}
}
class Boss extends Employee{
public Boss(){
hello();
}
@Override
void hello() {
System.out.println("Boss");
}
}
public class Main {
public static void main(String[] args) {
Employee e = new Boss();
}
}
复制代码
作者:
小悟空et
时间:
2015-5-6 20:31
因为主函数创建Boss的对象时,会运行Boss的构造函数;
而Boss继承于Employee,会在构造函数第一行有一个隐藏的super()语句。
出现的两个Boss,一个是类Employee中的hello()打印的,第二个是Boss类中的Hello()打印的
我也刚刚自学完一遍,理解的可能也有问题,上面是个人的想法了
作者:
bboyXiaoNuo
时间:
2015-5-6 21:07
因为在子类的构造函数第一行有一个隐含的语句super(),固父类构造函数会被调用,视频里有说这个,我记得很清楚
作者:
LPStone
时间:
2015-5-6 21:13
学习学习!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2