zoukankan      html  css  js  c++  java
  • 浅谈JAVA继承关系中的构造函数

    话不多说直接上例子,我的例子中定义了两个类,TheSon和TheFather,TheSon继承了TheFather,如图:

    TheSon类的定义:

    在这里插入图片描述

    TheFather类的定义:
    在这里插入图片描述

    当我们初始化TheSon类的时候,也就是new TheSon()的时候,就会调用TheSon类中的无参构造器,如图:

    在这里插入图片描述


    我们看到在代码中并没有调用TheFather类中的构造,来看看运行结果:

    在这里插入图片描述


    可以看到即使没有调用父类的构造父类的构造依旧执行了,那这是怎么回事呢?

    答案很简单:java在执行过程中在执行子类的构造方法之前会隐式的调用父类的无参,如图:

    在这里插入图片描述


    再看运行结果:

    在这里插入图片描述


    当我们显示的调用之后,它就不会再进行隐式的调用,比如我们在相同地方调用父类的有参构造,如图:

    在这里插入图片描述


    在这里插入图片描述

    有萌新可能就会疑问了,super这个关键字到底是干嘛的?

    概念:在Java类中使用Super来引用父类的成分,用this来引用当前对象

    提问:new TheSon() 时创建的是一个对象还是两个对象?

  • 相关阅读:
    10天学安卓-第八天
    10天学安卓-第七天
    10天学安卓-第六天
    10天学安卓-第五天
    10天学安卓-第四天
    10天学安卓-第三天
    透过 Cucumber 学习 BDD
    应对复杂软件的思考
    管理任务就是管理时间
    Running Dubbo On Spring Boot
  • 原文地址:https://www.cnblogs.com/blackjoyful/p/11547116.html
Copyright © 2011-2022 走看看