java 关键字super详解及用法

Java 关键字super详解及用法

在 Java 编程中,我们经常会遇到需要在派生类中调用父类的方法或访问父类的属性的情况。这时就需要用到 Java 关键字 super。本文将详细讲解 Java 关键字 super 的用法及示例说明。

1. super 的作用

  • 访问父类的属性
  • 调用父类的方法
  • 调用父类的构造方法

2. super 访问父类的属性

使用 super 关键字可以访问父类中的属性。

以下是示例代码:

class Parent {
    String name = "Parent";
}

class Child extends Parent {
    String name = "Child";

    void printNames() {
        System.out.println("Child name = " + name);
        System.out.println("Parent name = " + super.name);
    }
}

public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        child.printNames();
    }
}

运行结果:

Child name = Child
Parent name = Parent

分析:在 Child 类中,我们定义了一个名为 name 的属性,与父类 Parent 中的属性同名。若在 Child 类中直接使用 name,则会访问到子类中的属性;若要访问父类中同名的属性,使用 super.name 即可。

3. super 调用父类的方法

使用 super 关键字可以调用父类中的方法。

以下是示例代码:

class Parent {
    void show() {
        System.out.println("This is Parent");
    }
}

class Child extends Parent {
    @Override  // 覆写父类方法
    void show() {
        super.show();  // 调用父类方法
        System.out.println("This is Child");
    }
}

public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        child.show();
    }
}

运行结果:

This is Parent
This is Child

分析:在 Child 类中,我们覆写了父类 Parent 中的 show() 方法,并在子类方法中调用了 super.show(),即调用了父类中的 show() 方法,并在子类方法中添加了新的内容。

4. super 调用父类的构造方法

使用 super 关键字可以调用父类的构造方法。

以下是示例代码:

class Parent {
    String name;

    Parent() {
        name = "Parent";
    }
}

class Child extends Parent {
    Child() {
        super();  // 调用父类无参构造方法
    }
}

public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        System.out.println(child.name);
    }
}

运行结果:

Parent

分析:在 Child 类中,我们定义了一个无参构造方法,并在其中使用 super() 调用了父类的无参构造方法,即 Parent 的构造方法。这样可以确保子类对象在实例化时先初始化父类部分的属性。

5. 总结

super 关键字在 Java 编程中具有重要作用,可以实现对父类属性、方法和构造方法的访问或调用。熟练掌握 super 关键字的用法,有助于程序的编写。

以上是 Java 关键字 super 的详细讲解及示例说明。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:java 关键字super详解及用法 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • Java实现验证文件名有效性的方法详解

    Java 实现验证文件名有效性的方法详解 在进行文件操作时,通常会涉及到对文件名的操作,因此我们需要在程序中验证文件名的有效性,避免出现问题。本文将详细讲解如何使用 Java 实现验证文件名的有效性。 文件名中的特殊字符 在进行文件操作时,常常需要使用一些特殊字符作为文件名,例如: 空格 斜杠(/ 或 \) 冒号 问号 星号 双引号 等等 然而,在一些操作系…

    other 2023年6月26日
    00
  • IDEA中使用Git拉取代码时报 Git pull failed原因及解决方法

    下面是 “IDEA中使用Git拉取代码时报 Git pull failed原因及解决方法”的完整攻略: 1. Git pull failed的常见原因 在使用IDEA中进行Git拉取代码时,可能会遇到Git pull failed的错误提示,原因主要包括以下几种: 1.1 远程仓库不存在 Git pull failed的原因之一是指定的远程仓库不存在。比如,…

    other 2023年6月27日
    00
  • c++-解密使用htpasswd创建的密码

    要解密使用htpasswd创建的密码,需要使用Apache的htpasswd工具。htpasswd工具可以创建和管理基于HTTP身份验证的用户和密码。以下是解密使用htpasswd创建的密码的完整攻略: 安装Apache的htpasswd工具 要使用htpasswd工具,需要先安装Apache Web服务器。在Linux系统上,可以使用以下命令安装Apach…

    other 2023年5月8日
    00
  • SpringBoot整合Redis的步骤

    SpringBoot整合Redis的步骤攻略 1. 添加依赖 首先需要在pom.xml文件中添加相应的依赖来引入Redis和SpringBoot的相关库。以下是一个示例: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>s…

    other 2023年6月28日
    00
  • 浅谈python模块的导入操作

    Python模块的导入操作 Python模块是一组相关的函数、类和变量的集合,可以被其他程序重复使用。Python模块的导入操作是将模块中的函数、类和变量引入到当前程序中,以便在程序中使用。Python中有多种导入模块的方式,下面将详细介绍。 导入模块的方式 1. import语句 使用import语句可以导入一个模块,例如: import math pri…

    other 2023年5月5日
    00
  • 在Linux命令行中创建和展示幻灯片的教程

    下面是在Linux命令行中创建和展示幻灯片的详细攻略。 安装软件 首先需要安装libreoffice软件来创建幻灯片,可以通过以下命令进行安装: sudo apt-get update sudo apt-get install libreoffice 创建幻灯片 使用libreoffice命令可以启动软件,进入图形化界面创建幻灯片,然而在命令行中输入libr…

    other 2023年6月26日
    00
  • oracle索引失效怎么处理

    Oracle索引失效怎么处理 在日常 Oracle 数据库维护和优化中,经常会碰到索引失效的情况。一旦索引失效,查询性能可能会大幅下降,影响到用户的使用体验。本文将介绍 Oracle 索引失效的原因和处理方法。 索引失效的原因 当数据量变化较大时,原本优化的查询语句可能会失效,需要重新优化。 索引本身存在问题,比如索引损坏、索引字段有误等情况。 查询条件可能…

    其他 2023年3月28日
    00
  • Python性能调优的十个小技巧总结

    Python性能调优的十个小技巧总结 在Python编程中,性能调优是一个重要的方面,可以提高程序的执行效率和响应速度。下面是十个小技巧,可以帮助你优化Python代码的性能。 1. 使用局部变量 在循环或函数中,尽量使用局部变量而不是全局变量。因为局部变量的访问速度更快,可以减少函数调用和内存访问的开销。 示例: def calculate_sum(num…

    other 2023年7月29日
    00
合作推广
合作推广
分享本页
返回顶部