Java中super和this的用法详解

当在某个类中定义同名的属性或方法时,Java使用关键字super和this来区分当前类中的成员和其从父类中继承的成员。本文将详细解释Java中super和this的用法。

1. super关键字的用法

关键字super可以用来引用父类中的域和方法。下面是两个示例:

示例1:

class Parent{
    public int number = 10;
}
class Child extends Parent{
    public int number = 5;
    public void printNumber(){
        System.out.println("子类的number值为:"+number);
        System.out.println("父类的number值为:"+super.number);
    }
}
public class Main {
    public static void main(String[] args) {
        Child child = new Child();
        child.printNumber();
    }
}

输出结果:

子类的number值为:5
父类的number值为:10

在上面的代码中,父类Parent和子类Child都有一个名为number的成员变量。子类Child中的printNumber()方法使用关键字super来访问其从父类中继承的number属性。

示例2:

class Animal{
    public void speak(){
        System.out.println("动物发出了声音");
    }
}
class Cat extends Animal{
    @Override
    public void speak(){
        super.speak();
        System.out.println("喵喵喵");
    }
}
public class Main {
    public static void main(String[] args) {
        Cat cat = new Cat();
        cat.speak();
    }
}

输出结果:

动物发出了声音
喵喵喵

在上面的代码中,父类Animal有一个speak()方法,子类Cat通过使用关键字super来调用其父类的speak()方法。

2. this关键字的用法

关键字this用于引用当前类的属性或方法。在下面的两个示例中,我们将使用this来引用自己类中的成员变量或方法。

示例1:

class Student{
    String name;
    int age;
    public Student(String name, int age){
        this.name = name;
        this.age = age;
    }
    public void printInfo(){
        System.out.println("学生名字:"+name);
        System.out.println("学生年龄:"+age);
    }
}
public class Main {
    public static void main(String[] args) {
        Student student = new Student("Tom", 18);
        student.printInfo();
    }
}

输出结果:

学生名字:Tom
学生年龄:18

在上面的代码中,this关键字用于引用当前类的成员变量name和age,以便在构造函数和printInfo()方法中使用它们。

示例2:

class Calculator{
    private int num1;
    private int num2;
    public Calculator(int num1, int num2){
        this.num1 = num1;
        this.num2 = num2;
    }
    public int add(){
        return this.num1 + this.num2;
    }
}
public class Main {
    public static void main(String[] args) {
        Calculator calculator = new Calculator(10, 20);
        System.out.println("计算结果为:" + calculator.add());
    }
}

输出结果:

计算结果为:30

在上面的代码中,this关键字用于引用当前类的成员变量num1和num2,以便在add()方法中使用它们。

结论

super关键字用于引用父类中的方法和属性,this关键字用于引用当前类中的方法和属性。使用这两个关键字可以使你的代码更加清晰和易于理解。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中super和this的用法详解 - Python技术站

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

相关文章

  • MySQL常见建表选项及约束

    MySQL常见建表选项及约束 在MySQL中,创建表时可以使用各种选项和约束,以确保数据的正确性和完整性。下面介绍一些常见的选项和约束: 数据类型 在创建表时,需要指定存储在列中的数据类型。常用的数据类型如下: INT: 整数。可以指定长度,如INT(10)。长度指定了显示的宽度,但不影响存储。INT的长度默认为11。 FLOAT和DOUBLE: 浮点数。F…

    其他 2023年3月28日
    00
  • Pyinstaller打包文件太大的解决方案

    PyInstaller是一个开源的第三方库,用于将Python代码转换成可以在不安装Python的情况下运行的可执行文件,但是有时候打包出来的文件很大,不便于传输和使用。下面是PyInstaller打包文件太大的解决方案的完整攻略。 1.使用UPX压缩可执行文件 UPX是一个开源的可执行文件压缩工具,可以将文件大小压缩至原始大小的50%左右,同时不会影响可执…

    other 2023年6月26日
    00
  • java 中模拟TCP传输的客户端和服务端实例详解

    Java 中模拟 TCP 传输的客户端和服务端实例详解 本攻略将介绍如何使用 Java 编写模拟 TCP 传输的客户端和服务端程序。在本攻略中,我们将使用 Java 的 Socket 和 ServerSocket 类来实现 TCP 传输的功能。 前置知识 在开始本攻略之前,需要对以下知识点有一定的了解: Java 基础知识 TCP/IP 协议 Socket …

    other 2023年6月27日
    00
  • go grpc安装使用教程

    Go gRPC 安装使用教程 简介 gRPC 是一种高效、强大、轻便的通信框架,用于构建分布式应用程序。使用 gRPC,您可以定义服务并生成有效的客户端和服务器端代码。gRPC 可以在许多语言和平台之间进行通信,包括 Go、Java、C++、Python、Ruby、Node.js 和 PHP 等语言。在本文中,我们将说明如何在 Go 中使用 gRPC。 安装…

    other 2023年6月26日
    00
  • 深度解析php数组函数array_chunk

    深度解析PHP数组函数array_chunk 在PHP开发中,数组是一种非常重要的数据类型。而PHP提供了很多可以操作数组的函数,其中一个非常实用的函数就是array_chunk。 什么是array_chunk? array_chunk函数是PHP数组函数中的一个,它可以将一个数组分割成指定大小的小数组,并将这些小数组组成一个大数组。它的语法如下: arra…

    其他 2023年3月28日
    00
  • php mysql获取表字段名称和字段信息的三种方法

    以下是关于“php mysql获取表字段名称和字段信息的三种方法”的详细攻略: 方法一:使用mysql_fetch_field函数获取字段信息 该方法使用mysql_fetch_field函数获取表中的字段信息,需要以下步骤: 1.链接数据库 $con = mysql_connect("localhost","root&quot…

    other 2023年6月25日
    00
  • JS中如何判断传过来的JSON数据中是否存在某字段

    可以通过JS中Object的hasOwnProperty方法来判断一个传入的JSON数据中是否存在某个字段。hasOwnProperty方法可以检测一个Object对象自身是否包含指定的属性,如果包含,则返回true,否则返回false。 以下是示例代码: const jsonObj = {"name": "Tom",…

    other 2023年6月25日
    00
  • Python变量教程之全局变量和局部变量

    Python变量教程之全局变量和局部变量攻略 在Python中,变量可以分为全局变量和局部变量。全局变量是在整个程序中都可访问的变量,而局部变量则只能在其定义的函数或代码块中访问。本教程将详细讲解全局变量和局部变量的概念、作用域以及如何使用它们。 全局变量 全局变量是在函数外部定义的变量,可以在整个程序中的任何地方访问。它们的作用域覆盖整个程序,包括函数内部…

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