super关键字

1.super是一个关键字,全部小写。

2.super和this对比学习

this:

​ 能出现在实例方法和构造方法中。

​ this的语法是: “this.'' 、“this()''

​ this不能使用在静态方法中。

​ this.大部分情况下是可以省略的

​ this.只有在区分局部变量和实例变量的时候不能省略

​ pulic void setName(string name){

​ this.name - name

}

​ this()只能出现在构造方法的第一行,通过当前的构造方法去调用”本类“中其他的构造方法,目的是:代码复用

super:

​ super能出现在实例方法和构造方法中。

​ super的语法是: “super.'' 、“super()''

​ super不能使用在静态方法中。

​ super.大部分情况下是可以省略的。

​ supepr()只能出现在构造方法的第一行,通过当前的构造方法去调用”父类“中其他的构造方法,目的是:创建子类对象的时候,先初始化父类型特征。

  1. super()

    表示通过子类的构造方法调用父类的构造方法。

    模拟现实中的场景:要想有儿子,需要先有父亲。

  2. 注意:

    this()和super()不能共存,它们都是只能出现在构造方法的第一行。

  3. 不管怎么调用,父类的构造方法一定会执行。

    public class test {
        public static void main(String[] args) {
            new B();
        }
    }
    
    class A {
        public A(){
            System.out.println("A类无参构造方法");
        }
    
        //一个类如果没有提供任何构造方法,系统会默认提供一个无参数构造方法。
        //一个类如果手动提供了一个构造方法,那么无参数构造系统将不再提供。
        public A (int a){
            System.out.println("A类的有参构造");
        }
    }
    
    class B extends A{
        public B (){
            super(2);
            //super()和this()都必须用在构造函数主体的第一条语句
            //this(3);
            System.out.println("B类的无参构造");
        }
    
        public B(int i) {
            System.out.println("B类的有参构造");
        }
    }

     

posted on 2022-10-07 16:29  三岁学JAVA  阅读(48)  评论(0)    收藏  举报