DESKTOP-72IFJTH_20200831-赵亚军

20200831-赵亚军

1、问题:上周考试题第七题没找到错在哪里

父类:public  Base (String s) {
        System.out.println("B");
    }

子类:public Derived (String s) {
        System.out.println("D");
    }
    public static void main(String[] args) {
    }

2、解决:通过请教旁边同学得知:子类构造方法执行时首先会调用父类构造方法,父类中含有有参构造,因此在子类中必须通过super调用父类构造才能执行子类构造方法

1、public  Base (String s) {
        System.out.println("B");
    }
    public Base() {           //增加无参构造
        
    }
    
    
2、public Derived (String s) {
        super("s");            //或者通过super()调用父类构造
        System.out.println("D");
        }
public static void main(String[] args) {
}

3、心得:在继承方法中,如果父类书写了带参的构造后编译器就不会在自动添加无参构造,需要手动添加一个无参构造public +类名();

记住:
1.子类构造方法执行时首先会调用父类构造方法,父类中含有有参构造,因此在子类中必须通过super调用父类构造才能执行子类构造方法
2.如果需要调用父类中指定构造方法,可以通过传递参数来实现
3.如果某个构造方法内部没有显式书写 super( [参数] ) 调用父类构造,则编译器会添加 super()

4、吐槽:三十遍起步是真的狠,太狠了

标签

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1