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

super关键字

时间:2024-08-01 12:50:22浏览次数:10  
标签:调用 Parent 关键字 Child 父类 super public

super关键字

目录

两种途径

  • 调用父类的方法
  • 调用父类的构造方法

语法格式

super.属性名//访问父类的属性

super.方法名(参数);//调用父类的方法。

super(参数);//调用父类的构造方法。
//初始化当前对象的父类型特征

常见用法

访问父类的构造方法

使用 super() 调用直接父类的构造方法。这必须在子类构造方法的第一行进行。

public class Parent {
    public Parent() {
        // 初始化代码
    }
}

public class Child extends Parent {
    public Child() {
        super(); // 调用父类的构造方法
        // 子类的初始化代码
    }
}
访问父类的成员变量

当子类和父类有相同名称的成员变量时,可以使用 super 来明确引用父类的成员。

public class Parent {
    protected int value = 10;
}

public class Child extends Parent {
    public void printValue() {
        System.out.println(super.value); // 引用父类的变量
    }
}

访问父类的方法

当子类重写了父类的方法时,可以使用 super 来调用父类中被重写的方法。

public class Parent {
    public void print() {
        System.out.println("Parent method");
    }
}

public class Child extends Parent {
    @Override
    public void print() {
        super.print(); // 调用父类的方法
        System.out.println("Child method");
    }
}

在多态上下文中使用

当通过子类引用调用方法时,super 将调用实际对象的父类版本的方法。

Child child = new Child();
child.print(); // 调用 Child 类中的 print 方法
Parent parent = child; // 多态
parent.print(); // 调用 Parent 类中的 print 方法
在静态上下文中使用

super 关键字不能在静态上下文中使用,因为静态上下文不与任何特定实例相关联。

在匿名内部类中使用

在匿名内部类中,super 可以用于访问外部类的方法和变量。

public class Outer {
    public void method() {
        new Thread() {
            public void run() {
                super.method(); // 调用外部类的方法
            }
        }.start();
    }
}

super 关键字是 Java 中实现继承和多态的重要工具,它允许子类访问和调用父类的功能。

标签:调用,Parent,关键字,Child,父类,super,public
From: https://www.cnblogs.com/luoyiwen123/p/18336446

相关文章

  • 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中的关键字:访问......
  • 关键字和保留字
    关键字Java的关键字对java的编译器有特殊的意义,他们用来表示一种数据类型,或者表示程序的结构等关键字列表(依字母排序共51组):abstract,assert,boolean,break,byte,case,catch,char,class,const,continue,default,do,double,else,enum,extends,final,finally,......
  • 关键字和保留字
    关键字和保留字关键字访问控制:public,protected,private:用于控制类、方法和变量的访问级别。类和接口:class,interface:用于定义类和接口。extends:用于实现继承。implements:用于实现一个或多个接口。对象和实例:new:用于创建对象实例。this:引用当前......
  • C++11 中引入的auto关键字
    什么是auto关键字?    在C++11中,auto关键字被引入作为一种类型推断的机制(在编译期间执行),它允许编译器自动推断变量的类型。auto使用时需要注意的问题:1、auto与指针和引用结合使用:首先说一下auto和auto*为什么一样,因为在autoa=&x;这里auto类型推......
  • 【super,迭代器,装饰器】
    super函数super函数可以调用父类的方法super().add()**使用子类调用父类已经被覆盖的方法super(Child,obj).f()使用子类对象调用父类被覆盖的方法classParent:defsay(self):print('parent')classChild(Parent):defsay(self):p......
  • 如何通过关键字显示这些信息?
    我需要通过关键字查找单元格并显示相邻单元格的信息。我只需要显示一个数字。我该怎么做?这里我必须手动插入表格、行号和行号。但我想自动化这个。如何通过关键字自动搜索页面、行和列?importrefromdocximportDocumentdocument=Document('889411.docx......