Java super和this的对比及使用

yizhihongxing

Java中的super和this是两个重要的关键字,在面向对象编程中常用于访问父类的属性和方法以及当前实例的属性和方法。本攻略将围绕这两个关键字详细讲解其对比和使用方法。

一、super和this的区别

1.1 定义

  • super:关键字表示当前类的父类对象。
  • this:关键字表示当前对象本身。

1.2 用法

  • super:可以使用"super."的方式调用父类中的属性和方法。
  • this:可以使用"this."的方式调用当前对象的属性和方法。

1.3 使用场景

  • super:主要用于区分子类和父类同名的成员变量和成员方法。
  • this:主要用于区分成员变量和局部变量,以及在方法内部调用当前对象的方法。

二、super的使用方法

2.1 调用父类构造方法

子类中使用super关键字可以调用父类的构造方法,如下:

public class Animal {
    private String name;
    public Animal(String name) {
        this.name = name;
    }
}

public class Dog extends Animal {
    private String breed;
    public Dog(String name, String breed) {
        super(name); // 调用父类构造方法
        this.breed = breed;
    }
}

2.2 调用父类属性和方法

子类中使用super关键字可以调用父类的属性和方法,如下:

public class Animal {
    private String name;
    public void eat() {
        System.out.println(name + "在吃东西");
    }
}

public class Dog extends Animal {
    public void eat() {
        super.eat(); // 调用父类方法
        System.out.println("狗粮味道真不错");
    }
}

三、this的使用方法

3.1 区分成员变量和局部变量

如果成员变量和局部变量同名,可以使用this关键字区分,如下:

public class Student {
    private String name;
    public void setName(String name) {
        this.name = name; // 使用this关键字
    }
}

3.2 调用当前对象方法

在方法内部可以使用this调用当前对象方法,如下:

public class Calculator {
    private int result;
    public Calculator add(int a) {
        result += a;
        return this; // 返回当前对象
    }
    public Calculator sub(int a) {
        result -= a;
        return this;
    }
    public int getResult() {
        return result;
    }
}

public class Test {
    public static void main(String[] args) {
        Calculator cal = new Calculator();
        int result = cal.add(1).add(2).sub(1).getResult(); // 使用当前对象方法
        System.out.println(result); // 输出结果3
    }
}

四、总结

  • super和this都是关键字,用于访问父类的属性和方法和当前对象的属性和方法。
  • super和this的主要区别在于使用方式和场景不同。

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

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

相关文章

  • 使用poi统计工作职责

    POI是一个用于读写Microsoft Office格式文件的Java库,包括Excel、Word和PowerPoint等文件格式。在本文中我们将介绍如何使用POI统计工作责,包括读取Excel文件、解析Excel数据、统计工作职责等。 步骤1:读取Excel文件 首先,我们需要取Excel文件中的数据。可以通过以下步骤实现: 创建一个File对象,指定要读…

    other 2023年5月8日
    00
  • Ubuntu 下忘记用户名和登录密码的解决方法

    当你忘记Ubuntu登录的用户名和密码时,可以通过以下步骤来解决此问题: 步骤一:进入救援模式 首先,你需要进入救援模式。启动电脑后,按住SHIFT键不放,进入启动菜单,选择高级选项,然后选择救援模式。系统会提示你选择哪种救援模式,在此处选择 root Drop to root shell prompt。 步骤二:挂载系统文件系统 在root shell提示…

    other 2023年6月27日
    00
  • 苹果iOS7激活过程中常见错误代码整理及解决方案

    苹果iOS7激活过程中常见错误代码整理及解决方案 介绍 当您尝试激活苹果iOS7设备时,可能会遇到一些错误代码。此文档旨在帮助您识别这些错误代码,并提供解决方案。 常见错误代码及解决方案 错误代码:9006 此错误代码表示您的计算机无法连接到苹果服务器。请尝试以下操作: 确保您的计算机与互联网连接正常,并且您的网络没有被防火墙或安全软件阻止。 重启您的计算机…

    other 2023年6月26日
    00
  • python实现遍历文件夹修改文件后缀

    Python实现遍历文件夹修改文件后缀的攻略 要实现遍历文件夹并修改文件后缀,可以使用Python的os模块和shutil模块。下面是一个完整的攻略,包含了两个示例说明。 步骤1:导入必要的模块 首先,我们需要导入os模块和shutil模块,以便进行文件和文件夹操作。 import os import shutil 步骤2:定义函数来修改文件后缀 接下来,我…

    other 2023年8月5日
    00
  • Android使用ViewFlipper实现上下滚动消息

    Android使用ViewFlipper实现上下滚动消息攻略 简介 ViewFlipper是Android中的一个布局容器,它可以让子视图在容器内进行切换显示。通过使用ViewFlipper,我们可以实现上下滚动消息的效果。 步骤 步骤一:添加ViewFlipper到布局文件 首先,在你的布局文件中添加一个ViewFlipper容器,如下所示: <Vi…

    other 2023年9月6日
    00
  • matlab输出参数过多

    以下是关于“matlab输出参数过多”的完整攻略,包含两个示例说明。 Matlab输出参数过多 在Matlab中,当函数返回的输出参数过多,可能会出现一些问题。在本攻略,我们将介绍如何处理这个问题。 1. 了解输出参数 在Mat中,函数可以返回多个输出参数。当函数的输出参数过多时,可能会出现一些问题。例如,当你尝试将函数的输出存储在一个变量中时,你可能会收到…

    other 2023年5月9日
    00
  • (转载整理)SAP ERP常用表

    (转载整理)SAP ERP常用表 本文是根据SAP ERP系统中常用的表格进行整理和汇总。这些表格包括了各种核心模块,如物料管理、销售管理、采购管理等等,下面将对它们逐一进行介绍。 物料管理 MARA – 物料主数据(一般物料) MAKT – 物料描述 MARM – 物料单位 销售管理 VBAK – 订单头 采购管理 EKPO – 采购订单行 EKKO – …

    其他 2023年3月28日
    00
  • burpsuite的使用(一)

    BurpSuite的使用(一) BurpSuite是一款常用的Web应用安全测试工具,同时也是将安全问题演示给开发者、渗透测试人员等人员的必备工具之一。本文将介绍BurpSuite的基本使用方法:如何使用代理拦截请求,发送请求并对响应进行分析等操作。 下载与安装 BurpSuite官方网站:https://portswigger.net/burp/commu…

    其他 2023年3月28日
    00
合作推广
合作推广
分享本页
返回顶部