黑马程序员技术交流社区
标题:
为什么这点代码运行后会输出两次 Boss呢
[打印本页]
作者:
无霜子
时间:
2015-5-6 22:25
标题:
为什么这点代码运行后会输出两次 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();
}
}
复制代码
因为主函数创建Boss的对象时,会运行Boss的构造函数;
而Boss继承于Employee,会在构造函数第一行有一个隐藏的super()语句。
出现的两个Boss,一个是类Employee中的hello()打印的,第二个是Boss类中的Hello()打印的。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2