不是必须 但是自动调用SUPER 什么时候必须调用SUPER 给你个例子 public class Father { public String name; public Father(String name) { this.name = name; } } public class Son extends Father{ public Son(String name) { super(name);//必须调用,否则他会默认调用父类的无参构造函数,而父类的无参构造函数已经被有参的覆盖,所以找不到 } } 子类重写了父类的方法,又想用父类该方法的时候 如: class Parents{ Public Parents(){} public void write(){ System.out.println("Parents"); } } class Children extend Parents{ Public Children(){} public void write(){ System.out.println("Children"); super.write(); } } 不是必须的,在构造函数中,如果第一行没有写super(),编译器会自动插入.但是如果父类没有不带参数的构造函数,或这个函数被私有化了(用private修饰).此时你必须加入对父类的实例化构造.而this就没有这个要求,因为它本身就进行实例化的构造.
JAVA中什么时候要用super
最新推荐文章于 2023-11-05 23:41:42 发布