子类,父类默认构造函数及带参构造函数的调用

*在子类,父类默认构造函数及带参构造函数的调用:
如下程序,在父类,子类中均存在两种构造函数,一种是无参的构造函数,用于给一些属性提供默认值,一种是直接初始化某些属性;在子类进行继承时,子类构造函数对父类进行引用:
1.父类构造函数必须放在子类构造函数的第一行。
2.当父类中不存在构造函数时,系统会为父类自动生成一个无参的构造函数,且在子类构造函数的第一行默认调用。也可手动进行调用。
3.当父类存在无参的构造函数时,在子类中的调用情况与2中一致
4.当父类中存在带参的构造函数时,系统就不会再为其生成无参构造函数,因此子类的构造函数中必须手动调用带参的构造函数,否则系统会默认想要调用无参构造函数,结果不存在,报错。因此我们知道:父类中可以不存在无参构造函数,但是在子类构造函数中必须手动调用带参构造函数,否则报错。
5.当子类不显示调用父类哪个构造函数时,系统默认调用父类无参构造函数
6.如果主程序调用子类带参构造函数,而子类构造函数没有指定父类构造函数的调用,默认调用父类无参构造函数。
7.在主程序对子父类构造函数进行调用时,默认均调用无参构造函数,除非指定带参构造函数。

class SuperClass{
private int age;
private String name;
public SuperClass(){
age=0;
name="aa";
}
public SuperClass(int age,String name){
this.age=age;
this.name=name;
}
public void getAge(){
System.out.println("年龄为:"+age);
}
public void getName(){
System.out.println("姓名为:"+name);
}
}

class ThisClass extends SuperClass{
public ThisClass(){
//super();
super(18,"java");
}
}

public class ClassMain{
public static void main(String[] args){
ThisClass tc=new ThisClass();
tc.getAge();
tc.getName();
System.out.println("Over!");
}
} 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值