Fred15677 2017-03-28 13:10 采纳率: 100%
浏览 817
已采纳

java继承的问题求解答

public class A {
public static void main(String[] args) {

B33 b=new B33();
}
}
class B{
public B(){
System.out.println("我是B");
}
}
class B2 extends B{
public B2(){
System.out.println("我是B2");
}
}
class B33 extends B2{
public B33(){
System.out.println("我是B33");
}
}
知道答案的各位能不能告诉我下
怎样才能调用子类的无参构造而不会调用父类的

  • 写回答

2条回答 默认 最新

  • 再写三行 2017-03-29 12:55
    关注
    1. 继承的概念:

    继承在本职上是特殊——一般的关系,即常说的is-a关系。子类继承父类,表明子类是一种特殊的父类,并且具有父类所不具有的

    一些属性或方法。
    2. 继承中的初始化顺序
    类初始化:

    在jvm装载类的准备阶段,首先为类的所有类属性和类初始化块分配内存空间。并在类首次初始化阶段中为其进行初始化,类属性和类初始化块之间

    的定义时的顺序决定了其初始化的顺序。若类存在父类,则首先初始化父类的类属性和类初始化块,一直上溯到Object类最先执行。

    对象初始化:

    在new创建对象时,首先对对象属性和初始化块分配内存,并执行默认初始化。如果存在父类,则先为父类对象属和初始化块先分配内存并执行初始化。

    然后执行父类构造器中的初始化程序,接着才开始对子类的对象属性和初始化块执行初始化。
    最后一句是重点,不要想着私有化父类的构造器和上面的偷梁换柱的做法,这是java的特性
    子类必须调用父类的构造器后才能自己进行初始化

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码