黑马程序员技术交流社区

标题: 为什么这点代码运行后会输出两次 Boss呢 [打印本页]

作者: 无霜子    时间: 2015-5-6 22:25
标题: 为什么这点代码运行后会输出两次 Boss呢
  1. class Employee{
  2. public Employee(){
  3. hello();
  4. }
  5. void hello() {
  6. System.out.println("Employee");
  7. }
  8. }

  9. class Boss extends Employee{
  10. public Boss(){
  11. hello();
  12. }
  13. @Override
  14. void hello() {
  15. System.out.println("Boss");
  16. }
  17. }
  18. public class Main {
  19. public static void main(String[] args) {
  20. Employee e = new Boss();
  21. }

  22. }
复制代码
因为主函数创建Boss的对象时,会运行Boss的构造函数;
而Boss继承于Employee,会在构造函数第一行有一个隐藏的super()语句。
出现的两个Boss,一个是类Employee中的hello()打印的,第二个是Boss类中的Hello()打印的。





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2