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, super, super, super happy

    Parent diaries for 137th days weather:sunny Wed...

  • Super, super, super, super fun d

    亲子日记第136天 天气:晴 星期二 今天是周二,超级超级超级超级超级超级开心的一天٩(๑^o...

  • Class中的super简析

    super当作函数使用 super()执行父类的构造函数 super() 返回的是子类的实例,即 super 内部...

  • reactES6写法

    注意: super()是为了使用this,必须在使用this之前声明super(); super(props)这个...

  • JAVA面试题

    Q:super()与 this()的区别? A:This():当前类的对象,super 父类对象。 Super()...

  • iOS - super | super | super clas

    super 是编译器的指示符,不是指针,只是一个标识符,代表调用父类的方法,调用者还是自己本身 superclas...

  • super

    super关键字的使用 super理解为:父类的 super可以用来调用:属性、方法、构造器 super的使用:(...

  • Java 泛型 <? super T> 中 supe

    Java 泛型 中 super 怎么 理解?与 extends 有何不同? super只能...

  • Wildcards with super

    What is Wildcards with super The quizzical phrase ? super...

  • Java中Super()与this()

    Java中Super()与this() super指父类,this指当前对象super()与this()都必须在构...

网友评论

      本文标题:super

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