zoukankan      html  css  js  c++  java
  • 继承中子类构造函数相关问题

    Day08_SHJavaTraing_4-13-2017

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

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

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

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

    如何解决这个问题呢?

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

     

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

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

     

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

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

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

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

     

  • 相关阅读:
    获取exe和dll里面的资源
    [C++] 反编译器
    再一次利用with as 优化SQL
    编码指南:寻找科学中的艺术
    对手机支付安全机制的思考
    用adblock过滤页面上固定位置的悬浮窗
    git卡在Resolving deltas 100%的解决办法
    十字路口的程序员
    hdu 2555
    hdu 1864
  • 原文地址:https://www.cnblogs.com/EzraOholiabXue/p/Day08_SHJavaTraing_4-13-2017_02.html
Copyright © 2011-2022 走看看