• 继承中子类构造函数相关问题


    Day08_SHJavaTraing_4-13-2017

    1.为什么任何一个类(不包含Object)的构造函数中都需要一个super() 语句?

      因为除了Object类以外,所有类都会继承一个父类;继承父类,那么子类实例化时就需要给父类中的成员变量显示赋值,就需要用到父类中的构造函数。

    2.如果父类中没有无参构造函数,子类如何实例化?

      super()表示调用父类无参构造函数;如果父类中没有无参构造函数,就会报错。

    如何解决这个问题呢?

      方法①在父类中添加一个无参构造函数

     

    方法②在子类的构造函数中显示的调用父类有参构造函数

      在子类构造函数中使用super调用父类构造函数需要注意,这个super语句必须写在构造函数的第一行。

     

    3.子类构造函数中,this() 和 super() 能否同时存在?

    不能。因为他们都要写在构造函数的第一行。所以如果一个构造函数中有this()语句,就没有super()语句,super()存在于this调用的那个构造函数里面。

    4.如果一个类的构造函数全部私有了,还可以有子类吗?

    不能。因为在子类的构造函数中一定要调用父类的构造函数,而一旦一个类的构造函数都私有了,就只能在本类中使用,其他类(也包括子类)都无法使用。

     

  • 相关阅读:
    VMdomainXml
    C 本地文件夸网文件Cp操作
    C++ auto 与 register、static keyword 浅析
    机器学习笔记——SVM
    NYOJ 298-点的变换(经典矩阵解决点平移、缩放、翻转和旋转)
    HDU 5407 CRB and Candies(LCM +最大素因子求逆元)
    Java总结之网络
    五月份小结
    算法——字符串匹配之BM算法
    javaweb_page指令
  • 原文地址:https://www.cnblogs.com/EzraOholiabXue/p/Day08_SHJavaTraing_4-13-2017_02.html
Copyright © 2020-2023  润新知