JAVA笔记---父类没有无参构造方法,子类怎么办

Posted on 2018-04-22 17:29  市民石先生  阅读(518)  评论(0)    收藏  举报

super解决或者this解决

注意事项
    * super(…)或者this(….)必须出现在构造方法的第一条语句上

  

class Demo4_Extends {
    public static void main(String[] args){
        Son s1 = new Son();
        System.out.println(s1.getName() + s1.getAge());
        System.out.println("------------");
        Son s2 = new Son("张三",23);
        System.out.println(s2.getName() + s2.getAge());
    }
}

class Father {
    private String name;
    private int age;
    
    /*public  Father(){
        System.out.println("Father 空参构造");
    }*/
    public Father(String name,int age){
        this.name = name;
        this.age = age;
        System.out.println("Father 有参构造");
    
    }

    public void setName(String name){
        this.name = name;
    }
    public String getName(){
        return name;

    }
    public void setAge(int age){
        this.age = age;
    }
    public int getAge(){
        return age;
    }
}

class Son extends Father {
    public  Son(){
        //super("李四",24); //隐藏了这个super(); super 调用父类中的构造方法
        this("李四",25); //调用本类中的构造方法  把值赋给son有参构造方法然后通过super(name,age)赋值给父类有参构造方法赋值;
        System.out.println("son 空参构造");
    }
    public  Son(String name,int age){
        super(name,age); //隐藏了这个super();
        System.out.println("son 有参构造");
    }
}