super

一、基本介绍

  1. super代表父类的引用,用于访问父类的属性、方法(均需要注意修饰符)、构造器(只能放在本类构造器的第一句)。

  2. super会隐藏的出现在具有继承关系的子类的构造器中,即默认会调用父类的无参构造器

    1. ```java
      public class father{
      father(){

      }
      }
      public class son extends father{
      son(){
      super(); ====>默认会有,
      }
      }
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11

      2.

      ### 二、基本语法

      1. 访问父类的属性,但不能访问父类的private属性

      1. super.属性名

      2. ```java

  3. 访问父类的方法,但不能访问父类的private方法

    1. super.方法名(参数列表)
  4. 访问父类的构造器

    1. super(参数列表)
    2. 只能放在本类构造器的第一句,且在一个函数体内只能出现一句。
    3. ==默认子类的构造器在本构造器的第一行就有一行super语句,调用父类的构造器==

三、综合案例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package  com.jhfuture.superAndthis;

public class superDemo {
public static void main(String[] args) {
son son = new son();
//调用子类的有参
com.jhfuture.superAndthis.son son1 = new son(123);
}
}

class father{
int age=10;
father(int age){
System.out.println("father的有参构造器被调用");
}
father(){
System.out.println("父类的无参构造器");
}
public void hello(){
System.out.println("hello");
}
}
class son extends father{
son(){
//默认会调用父类的无参构造器
super();
//属性
System.out.println(super.age);
//方法
super.hello();
}
//构造器
son(int input){
super(123);
}
}

image-20221021003214056