关于Java中的super()方法

    在Java继承中,经常会碰上super()方法,今天恰好碰上,小小的研究了一下。
    在子类的构造方法的第一行,必须是第一行调用super(),这样就调用了父类的构造方法,如果父类有多个不同的构造方法,则根据调用super()时传入的参数调用相应的父类构造方法。

public class Father {
    public Father() {
        System.out.println("Father的无参构造方法");
    }

    public Father(int i) {
        System.out.println("Father的有参构造方法" + i);
    }
}

class Son extends Father {
    public Son() {
        //super(2);  //此时调用Father(int i)方法
        super();  //此时调用Father()方法。其实这里不写super()也可以起到同样的作用,因为Java在调用子类构造方法时默认调用父类的无参构造方法,不过这两种可行的前提是父类中还留有无参构造方法。
        System.out.println("Son的无参构造方法");
    }
}

    顺便记录下关于Java继承中构造方法的一些东西:
    在调用子类构造方法时,不管调用的是有参还    是无参,如果没有在第一行调用super(var xx),都会默认先调用父类的无参构造方法。
如果父类中没有无参构造方法,子类中的构造方法则必须调用super(var xx),否则会报错。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容