JAVA中什么时候要用super

来源:互联网 发布:cnc编程工资待遇 编辑:程序博客网 时间:2024/05/16 19:36
不是必须但是自动调用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就没有这个要求,因为它本身就进行实例化的构造.
0 0