/*
如果父类没有无参构造方法,那么子类的构造方法会出什么什么现象呢?如何解决呢?
报错。
如何解决呢?
A:在父类中加一个无参构造方法
B:通过使用super关键字去显示的调用父类带参的构造方法
C:子类通过this去调用本类的其它构造方法
子类中一定要有一个去访问父类的构造方法,否则父类的数据就没有初始化。
注意事项:
this(...)或者super(...)必须出现在第一条语句上
如果不是放在第一条语句上,就可能对父类的数据进行了多次初始化,所以必须放在第一条语句上
*/
class Father{
/*
public Father(){
System.out.println("Father无参构造方法");
}
*/
public Father(String name){
System.out.println("Father有参构造方法");
}
}
class Son extends Father{
public Son(){
super("随便给");
System.out.println("Son的无参构造方法");
//super("随便给");
}
public Son(String name){
//super("随便给");
this();
System.out.println("Son的有参构造方法");
//this();
}
public Son(String name,int age){
//super("随便给");
this();
System.out.println("Son的有参构造方法");
//this();
}
}
class ExtendsDemo7{
public static void main(String[] args){
//创建对象
Son s = new Son();
System.out.println("--------------");
Son ss = new Son("姓名");
System.out.println("--------------");
Son sss = new Son("姓名",20);
}
}
面向对象_继承中构造方法的注意事项
最新推荐文章于 2022-04-25 23:28:14 发布