首页 > 其他分享 >super关键字

super关键字

时间:2024-08-01 21:40:24浏览次数:13  
标签:变量 子类 关键字 Child 父类 super class

uper在父类、子类相关联的操作中经常被用到

super 是Java中的关键字,用于引用父类(超类)的成员变量、方法或构造函数。它有以下主要用途:

  1. 访问父类中的成员变量
  2. 调用父类中的构造方法
  3. 调用父类中的方法

1、访问父类的成员变量

使用 super 关键字可以在子类中访问父类中的成员变量。这对于在子类中有相同名字的成员变量时很有用,以便明确指定你想要访问的是父类的成员变量。

package com.sky.test;
 
class Parent {
    int x = 10;
}
 
class Child extends Parent {
    int x = 20;
 
    void display() {
        System.out.println(super.x); // 访问父类的x变量    10 
        System.out.println(this.x);    // 访问子类的x变量  20
    }
}
 
public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        child.display();
    }
}
class Animal {
    String name = "Animal"; // 父类的成员变量
 
    void printName() {
        System.out.println(name); // 打印父类的成员变量
    }
}
 
class Dog extends Animal {
    String name = "Dog"; // 子类的成员变量
 
    void displayNames() {
        System.out.println(name);     // 打印子类的成员变量
        System.out.println(super.name); // 打印父类的成员变量
    }
}
 
public class Main {
    public static void main(String[] args) {
        Dog myDog = new Dog();
        myDog.printName();    // 输出:Animal(调用父类方法)
        myDog.displayNames(); // 输出:Dog(子类成员变量),Animal(父类成员变量)
    }
}

2、调用父类中的构造方法

经常用在下面这种情况,类中有些变量是子类继承父类的

利用super可调用父类的构造方法将其赋值

class Parent {
    int x;
 
    Parent(int x) {
        this.x = x;
    }
}
 
class Child extends Parent {
    int y;
 
    Child(int x, int y) {
        super(x); // 调用父类构造函数  将x赋值
        this.y = y;
    }
 
    // @Override 不理解也没事,不带上这个注解一样能正常运行
    @Override  // java中的注解 此处的意思是表明此方法是重写过的方法
    public String toString() {   // 返回带上child的成员变量值的字符串 x和y
        return "Child{" +
                "y=" + y +
                ", x=" + x +
                '}';
    }
}
 
public class Main {
    public static void main(String[] args) {
        Child child = new Child(10, 20);
        System.out.println(child.toString());
    }
}

3、调用父类中的方法

使用 super 关键字可以在子类中显式调用父类的方法。这在子类重写父类的方法时特别有用,以便在子类中可以调用父类的版本。

class Parent {
    void print() {
        System.out.println("Parent's print method");
    }
}
 
class Child extends Parent {
    @Override
    void print() {
        super.print(); // 调用父类的print方法
        System.out.println("Child's print method");
    }
}
 
 
public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        child.print();
    }
}

标签:变量,子类,关键字,Child,父类,super,class
From: https://www.cnblogs.com/ZWJ7671277/p/18337622

相关文章

  • 封装,private关键字,this关键字
    我们上一个案例,使用private关键字将成员进行修饰,外界无法直接访问,讲了那么长时间,实际上就是在传输一个思想面向对象编程的三大特征,第一大特征:封装封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。private关键字:1、被private修饰的成员,外......
  • 【Java】继承、super、final、子类构造方法
     目录1.为什么需要继承2.继承的概念3.继承的语法4.父类成员访问4.1子类和父类不存在同名成员变量1.子类和父类不存在同名成员变量 2.子类和父类成员变量同名4.2子类中访问父类的成员方法1.成员方法名字不同2.成员方法名字相同5.super关键字6.子类构造方法7.this......
  • static关键字
    static关键字static关键字是什么?static是一个修饰符,用于修饰类的成员方法、类的成员变量,static关键字还有一个比较关键的作用就是用来形成静态代码块以优化程序性能。static块可以置于类中的任何地方,类中可以有多个static块。在类初次被加载的时候,会按照static块的顺序来执行......
  • this关键字
    当局部变量和成员变量重名时,在方法中使用this时,表示的是该方法所在类中的成员变量。(this指的是当前对象自己)如:publicclassWorld{Strings="World";publicWorld(Strings){System.out.println("s="+s);System.out.println("1-this.s="+this.s);......
  • super关键字
    super关键字目录super关键字两种途径语法格式常见用法访问父类的构造方法访问父类的成员变量访问父类的方法在多态上下文中使用在静态上下文中使用在匿名内部类中使用两种途径调用父类的方法调用父类的构造方法语法格式super.属性名//访问父类的属性super.方法名(参数);......
  • final关键字
    final关键字目录final关键字修饰类修饰方法修饰变量修饰成员变量修饰局部变量修饰基本数据类型修饰引用数据类型修饰类当final修饰类时,表示该类不可被继承。修饰方法当final修饰方法时,表示方法不可被子类覆盖,但是可以重载。修饰变量修饰成员变量如果final修饰的是类变量,......
  • await 调用的函数不一定必须是 async 函数。 await 关键字通常用于 async 函数内部,用
    await调用的函数不一定必须是async函数。 await关键字通常用于async函数内部,用来等待一个Promise对象的解决。但如果被await调用的对象不是Promise,那么它会被直接返回。 functionnotPromiseFunction(){return42;}asyncfunctionexample(){const......
  • 关键字和保留字
    目录关键字(Keyword)定义:特点:保留字(ReservedWord)特点:关键字(Keyword)定义:关键字是被Java语言赋予了特殊含义,用做专门用途的字符串(单词)。它们对Java的编译器有特殊的意义,用于表示一种数据类型或者表示程序的结构等。特点:关键字中的所有字母都是小写。关键字不能用作变量名、方......
  • 关键字和保留字
    1.1概念Java关键字(KeyWord):对Java的编译器有特殊的意义,他们用来表示一种数据类型或者表示程序的结构.保留字(ReserveWord):即它们在Java现有版本中没有特殊含义,以后版本可能会作为有特殊含义的词,或者该词虽然在Java中没有特殊含义,以后版本也不打算使用,但在其它语言中有特殊含义,......
  • 关键字和保留字
    关键字和保留字1.关键字(Keyword)关键字是被Java语言赋予了特殊含义,用做专门用途的字符串(单词)。它们是Java语法的一部分,用于表示特定的数据类型、程序结构等。特点:关键字中的所有字母都是小写。关键字不能用作变量名、方法名、类名等标识符。Java中的关键字:访问......