super

作者: 冯宏志 | 来源:发表于2020-11-29 14:09 被阅读0次
    super关键字的使用
    1. super理解为:父类的
    2. super可以用来调用:属性、方法、构造器
    3. super的使用:(属性、方法)
      3.1 :我们可以在子类的方法或构造器中。通过使用super.属性或super.方法的方式,显式的调用父类中声明的属性或方法。但是,通常情况下,我们习惯省略super
      3.2 :特殊情况,当子类和父类定义了同名属性时,我们要想在子类中调用父类中声明的属性,则必须显式的使用super.属性的方式,表明调用的是父类中声明的属性。代码如下:
      3.3 :特殊情况:当子类重写了父类的方法以后,我们想在子类的方法中调用父类中被重写的方法时,则必须显式的使用super.方法的方式,表明被调用的是父类中被重写的方法。
      Person(父类):
    package com.atguigu.java3;
    
    public class Person {
        public String name;
        public int age;
        public int id = 33108;//身份证号    
    }
    

    Student(子类):

    package com.atguigu.java3;
    
    public class Student extends Person{
         public int id = 10;//学号
         
         public void show() {
             System.out.println("name:" + name + "\t" + "age:" + age);
             System.out.println("学号:" + this.id + "\t" + "身份证号" + super.id);
         }
    }
    
    

    Test类

    package com.atguigu.java3;
    
    public class Test {
        public static void main(String[] args) {
            Student s1 = new Student();
            s1.show();//name:null   age:0
                      //学号:10   身份证号33108
    
        }
    }
    
    
    1. super调用构造器
      4.1 我们可以在子类的构造器中显式的使用“super(形参列表)”的方式,调用父类中声明的指定的构造器。
      4.2 此方式的使用,必须声明在子类构造器的首行,所以,在类的构造器中,针对于“this(形参列表)”和“super(形参列表)”只能二选一,不能同时出现
      4.3 在构造器首行,没有显式声明“this(形参列表)”或“super(形参列表)”,则默认调用的是父类中空参的构造器。
     public Student() {
             super();//这一行默认有,不需要写
             System.out.println("  ");
         }
    

    4.4 在类的构造器中,至少有一个类的构造器中使用了“super(形参列表)”,调用父类中的构造器(因为至多有n-1个用this)

    相关文章

      网友评论

          本文标题:super

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