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日

相关文章

  • JavaScript数组_动力节点Java学院整理

    JavaScript数组_动力节点Java学院整理 什么是JavaScript数组 在javascript中,数组就是一个用来存储一系列元素的ed对象。可以用来存储任何类型的值——数字、字符串、对象等。 在javascript中声明数组的语法: var arr = [element0, element1, …, elementN]; 其中 arr 是所声…

    other 2023年6月25日
    00
  • 华为交换机怎么重启接口? 华为交换机接口重启命令的用法

    下面是针对华为交换机重启接口的完整攻略: 一、重启单个接口 1.1 确认接口的状态 首先,我们需要查看当前接口的状态,确认其是否需要被重启。可以通过以下命令查看: display interface GigabitEthernet 0/0/1 其中,“GigabitEthernet 0/0/1”代表要查看的接口名称。 1.2 关闭接口 接着,我们需要关闭该接…

    other 2023年6月26日
    00
  • mosquittomqttbroker服务器的配置 增加登录鉴权设置

    mosquitto MQTT Broker服务器的配置增加登录鉴权设置 mosquitto是一种流行的MQTT代理,它可以用于构建IoT应用程序。在mosquitto中,通过配置文件来设置登录鉴权,以确保只有授权用户可以连接到mosquitto服务器。以下是mosquitto MQTT Broker服务器的配置增加登录权设置的完整攻略。 步骤1:创建密码文件…

    other 2023年5月8日
    00
  • linux 查看文件系统类型实例方法

    当我们在Linux操作系统上访问磁盘或者U盘时,需要查看相应文件系统类型,Linux提供了几种方法供我们查看文件系统类型。 方法一:使用df -T命令查看文件系统类型 df命令是用来进行文件系统的查看,默认情况下只会显示是否挂载,已挂载的设备空间占用情况等信息,如果需要查看文件系统的类型,需要使用-T参数。具体操作步骤如下: 打开终端,输入以下命令: df …

    other 2023年6月27日
    00
  • 研华运动控制卡 SoftMotion 技术简介

    研华运动控制卡 SoftMotion 技术简介 简介 研华(Advantech)作为全球稳定、可靠、高性能工业计算机、嵌入式计算机、工业物联网、智能机器与自动化解决方案的领导厂商,自然不会忽略了运动控制技术的应用。研华运动控制卡 SoftMotion 技术就是一个优秀的例子。 SoftMotion 技术集成在研华 DAQ 2000 系列的运动控制卡上,是一种…

    其他 2023年3月28日
    00
  • 构造函数定义为private或者protected的好处

    在面向对象编程(OOP)中,构造函数是用来创建一个类的新对象实例并完成类成员变量的初始化的特殊函数。在某些情况下,将构造函数定义为私有(private)或受保护(protected)会带来一些好处。 定义私有构造函数的好处: 私有构造函数可以防止创建类的新对象实例,这对于实现单例模式非常有用。在单例模式中,一个类只允许创建唯一的对象实例。通过将构造函数定义为…

    other 2023年6月26日
    00
  • Win10怎么添加文件资源管理器开启新进程右键菜单?

    要在Windows 10的资源管理器中添加“以新进程打开”右键菜单,可以按照以下步骤进行操作: 第一步:打开注册表编辑器 1.按下键盘上的“Win+R”组合键打开运行窗口。 2.在运行窗口中输入“regedit”并按下“Enter”键,这将打开注册表编辑器。 第二步:创建新的键和值 1.在注册表编辑器中,导航到以下键值: HKEY_CLASSES_ROOT\…

    other 2023年6月27日
    00
  • ModelAndView的介绍

    ModelAndView是Spring Boot框架中的一个类,用于将数据和视图封装到一起,返回给前端页面。在本文中,我们将详细介绍ModelAndView的作用和使用方法,并提供两个示例说明。 ModelAndView的作用 ModelAndView的作用是将数据和视图封装到一起,返回给前端页面。在Spring Boot框架中,我们可以使用ModelAnd…

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