您的位置:首页 > 其它

面向对象_继承中构造方法的注意事项

2016-09-30 23:35 337 查看
/*
如果父类没有无参构造方法,那么子类的构造方法会出什么什么现象呢?如何解决呢?
报错。

如何解决呢?
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);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐