Java当中子类继承父类(总结)几种特殊情况

这种时候有几种情况

情况一:当父类子类什么都不写的时候
class CD{
    
    

}
public class DVD extends  CD {
    
    
    
}

这个情况虽然父类子类什么都没有,但及时看不见在CD和DVD当中有各自的无参构造方法,相当于隐形
实际当中是这样的

class CD{
    
    

    CD(){
    
    
        
    }

}
public class DVD extends  CD {
    
    
    
    DVD(){
    
    
        super();
    }

}

上面的内容都可以不写,但写好类之后系统就自带了

情况二:当父类写有参构造不写无参构造
父类的无参构造会自动消失,子类默认调用的是父类的无参构造,但是没有无参构造子类就会报错,所以必须手动调用父类的有参构造,(在子类的无参构造当中和有参构造都可以调用)
class CD{
    
    
    CD(int r){
    
    
    }
}
public class DVD extends  CD {
    
    
    DVD(int r) {
    
    
        super(r);
    }
}
情况三:当父类写有参构造也写无参构造

子类当中的无参构造默认调用父类的无参构造

class CD{
    
    
    CD(){
    
    
    }
    CD(int r){
    
    
    }
}
public class DVD extends  CD {
    
    
}

相当于这样

class CD{
    
    
    CD(){
    
    
    }
    CD(int r){
    
    
    }
}
public class DVD extends  CD {
    
    
    DVD(){
    
    
        super();
    }
}
情况四:子类通过super()调用父类的有参构造和无参构造的时候super必须写在第一行

下面这样报错
在这里插入图片描述

情况四:this()也必须放第一行,所以this()和super()一般不放在一起用

在这里插入图片描述
下面是错误的
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_44757034/article/details/113417683