美文网首页
关于Java中的super()方法

关于Java中的super()方法

作者: lcgao | 来源:发表于2017-04-13 09:29 被阅读0次

        在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),否则会报错。

    相关文章

      网友评论

          本文标题:关于Java中的super()方法

          本文链接:https://www.haomeiwen.com/subject/ehavattx.html