A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

  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. }
复制代码



3 个回复

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

我也刚刚自学完一遍,理解的可能也有问题,上面是个人的想法了
回复 使用道具 举报
因为在子类的构造函数第一行有一个隐含的语句super(),固父类构造函数会被调用,视频里有说这个,我记得很清楚
回复 使用道具 举报
学习学习!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马