返回顶部
首页 > 资讯 > 后端开发 > Python >Javasuper关键字的用法详解
  • 508
分享到

Javasuper关键字的用法详解

2024-04-02 19:04:59 508人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录super关键字的三种用法:1. super.成员变量2. super.成员方法3. super():调用父类中的构造方法3.1.1 隐式调用父类无参数构造方法super()3.

super关键字作用:在子类内部调用父类对象

基础语法:

1.在类的继承中,当子类继承了父类, 在构造子类的时候,一定要先帮助父类进行构造;

2. 调用super()必须写在子类构造方法的第一行,以保证在执行任何动作前,对象已经完成了初始化,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。

super关键字的三种用法:

1. super.成员变量


class Person{
    public String name; //成员变量
    public Person(String name) {
        this.name = name;
    }
}
class Student extends Person{
    String name = "student";
    public Student(String name) {
        super(name);
    }
    public void help() {
        //调用父类的成员属性
        System.out.println(name); //student 直接使用,优先使用局部变量
        System.out.println(super.name); // B 直接使用父类的成员变量
    }
}
public class s {
    public static void main(String[] args) {
        Student p = new Student("B");
        p.help();
    }
}

2. super.成员方法


class {
    public String name;
    public Person(String name) {
        this.name = name; //Test
    }
    public void help() {
        System.out.println(this.name+"Person");
    }
}
class Student extends Person{
    String name = "student";
    public Student(String name) {
        super(name); //Test
    }
    public void help() {
        //调用父类的成员方法
        super.help();
        System.out.println(this.name+"Student"); //Student this调用的式同类中的变量
    }
}
public class s {
    public static void main(String[] args) {
        Student p = new Student("Test");
        p.help();
    }
}
//Test Person
//student Student

3. super():调用父类中的构造方法

3.1.1 隐式调用父类无参数构造方法super()

如果父类是无参构造,那么子类的构造方法会默认隐式的在第一行先调用父类无参数构造方法,所以super()无需手动进行调用;


public class Father{
    int id;
    public Father(){
        System.out.println("父类构造方法");
    }
}
public class Son extends Father{
    public Son(){
    	//super(); //系统会默认生成,可有可无
        System.out.println("子类构造方法");
    }
}
public class Test{
    public static void main(String[] args){
        Son s = new Son();
    }
}

//print:
//父类构造方法
//子类构造方法

3.1.2 显式调用父类有参数构造方法super(id)

如果父类是含参构造,那么此时因为父类中没有无参数构造方法,所以子类继承父类时会报错,这时就需要我们手动的调用父类的有参构造方法super(id);


public class Father{
    int id;
    public Father(int id){
        System.out.println("父类构造方法");
    }
}
public class Son extends Father{
    public Son(int id){
    	super(id); //手动调用父类的有参构造方法
        System.out.println("子类构造方法");
    }
}
public class Test{
    public static void main(String[] args){
        Son s = new Son(1);
    }
}

//print:
//父类构造方法
//子类构造方法

到此这篇关于Java super关键字的用法详解的文章就介绍到这了,更多相关Java super内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Javasuper关键字的用法详解

本文链接: https://lsjlt.com/news/158485.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Javasuper关键字的用法详解
    目录super关键字的三种用法:1. super.成员变量2. super.成员方法3. super():调用父类中的构造方法3.1.1 隐式调用父类无参数构造方法super()3....
    99+
    2024-04-02
  • c++关键字const的用法详解
    目录C语言const的用法1、指向常量的指针变量const int *p指针指向int a;2、常指针(常地址)int * const p指针指向int a;3、指向常量的常指针co...
    99+
    2024-04-02
  • Golang关键字defer的用法详解
    目录1. defer的简单介绍与使用场景2. defer在return执行的时机3. 小结1. defer的简单介绍与使用场景 defer是Go里面的一个关键字,用在方法或函数前面,...
    99+
    2023-05-18
    Golang关键字defer使用 Golang defer使用 Golang defer
  • MySQL中ESCAPE关键字的用法详解
    MySQL转义 转义即表示转义字符原来的语义,一个转义字符的目的是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义。 MySQL中,转义字符以“\”开头,编程中常见的转义字符,在M...
    99+
    2022-05-30
    MySQL ESCAPE关键字 MySQL ESCAPE
  • JavaScript中的this关键字用法详解
    目录this的绑定call与apply当方法失去主语的时候,this不再有?不可见的调用总结先举一个生活例子: 小明正在跑步,他看起来很开心 这里的小明是主语,如果没有这个主语,那么...
    99+
    2023-05-19
    JavaScript this关键字 JavaScript 关键字 JavaScript this
  • Java关键字之this用法详解
    目录一. this关键字1. 简介2. 作用二. 代码案例1. 代表当前类对象2. 调用类中的属性3. 调用类中的方法4. 调用类的构造方法三. 结语一. this关键字 1. 简介...
    99+
    2023-05-19
    Java this关键字 Java关键字 Java this
  • Java super关键字的使用方法详解
    构造方法中的super关键字在Java子类的构造方法中可以通过super关键字来调用父类的构造方法。其用法为: 1) super(); 访问父类中的无参构造函数 2) super (paras…); 访问父类中的成员函数yyy super(...
    99+
    2023-05-31
    java super ava
  • Javathis关键字的引用详解
    目录为什么要有this引用?什么是this引用this引用的特性为什么要有this引用? 我们先看一段代码示例 public class Date { public in...
    99+
    2024-04-02
  • Java关键字this与super详解用法
    目录一、this 关键字的使用1. 概述2. 作用3. 使用3.1 修饰属性和方法3.2 调用构造器3.3 返回当前对象二、super关键字的使用1. 概述2. 使用3. 使用3.1...
    99+
    2024-04-02
  • c语言static关键字用法详解
    目录1.static修饰全局变量2.static修饰函数3.static修饰局部变量总结:1.static修饰全局变量 我们创建两个源文件,一个test.c,一个main.c 现在...
    99+
    2024-04-02
  • 关于java中final关键字的使用方法详解
    一、修饰类被final修饰的类不能被子类继承。//父类Animal public final class Animal{ private int age; //年龄 private String var; //品种 public...
    99+
    2015-04-20
    java final 关键字 使用方法 详解
  • SQL关键字详解
    当前市场中,数据库在互联网整个技术链中的重要性是亘古不变的,站在实现业务功能的角度来说我们最常用的就是与数据库和缓存进行交互,而最终持久化存储最常见的依旧是关系型数据库。数据库中我们做常用的就是SQL基本查询语言,甚至有些人认为数据库就是S...
    99+
    2023-10-07
    数据库 mysql
  • 详解java中private关键字的使用方法
    private 关键字中文就是私有关键字,那么到底要怎么使用呢?1、只能在同一类中访问class A { private String msg="Try to access the private variable outside ...
    99+
    2016-08-22
    java入门 java private
  • Java中关键字synchronized的使用方法详解
    synchronized是Java里的一个关键字,起到的一个效果是“监视器锁”~~,它的功能就是保证操作的原子性,同时禁止指令重排序和保证内存的可见性! public clas...
    99+
    2024-04-02
  • C++ explicit关键字的使用详解
    在C++中,我们有时可以将构造函数用作自动类型转换函数。但这种自动特性并非总是合乎要求的,有时会导致意外的类型转换,因此,C++新增了关键字explicit,用于关闭这种自动特性。即...
    99+
    2024-04-02
  • Java this关键字的使用详解
    目录1. 先看一段代码,并分析问题2. 深入理解 this3. this 的注意事项和使用细节4. this 的案例1. 先看一段代码,并分析问题 public class ...
    99+
    2024-04-02
  • Java super关键字的使用详解
    目录1.super介绍2.super的基本使用3.子类和父类方法的调用细节4.super和this的区别1.super介绍 我们可以通过super关键字来实现对父类成员的访问,用来引...
    99+
    2024-04-02
  • 详解Java的static关键字
    文章目录 🎄静态方法🌺静态方法和非静态方法对比🛸静态方法实例🛸非静态方法实例 🌹static关键字⭐static变量⭐static代码块 ...
    99+
    2023-12-22
    java 开发语言 static 静态方法
  • java之assert关键字用法案例详解
    Java2在1.4中新增了一个关键字:assert。在程序开发过程中使用它创建一个断言(assertion)。,它的语法形式有如下所示的两种形式: 1、assert con...
    99+
    2024-04-02
  • Java关键字详解之final static this super的用法
    目录1. final 关键字:2. static 关键字:3. this 关键字:4. super 关键字:final,static,this,super 关键字总结 正文开始@A...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作