Java中this和super的区别及this能否调用到父类使用

Java 中this和super都是关键字,用于表示不同的对象。

this

this 关键字代表当前对象,即指向当前对象的引用。通常用于以下情况:

  1. 分清成员变量和局部变量同名的情况:使用 this 来引用当前对象的成员变量。

示例:

public class Person {
    private String name; // 成员变量 name
    public void setName(String name) {
        this.name = name; // 使用 this 引用当前对象的成员变量 name
    }
}
  1. 在构造方法中调用其他的构造方法:使用 this 关键字加上参数列表来调用其他的构造方法。

示例:

public class Car {
    private String brand;
    private String color;
    public Car(String brand) {
        this(brand,"Red"); // 调用另一个构造方法
    }
    public Car (String brand, String color) {
        this.brand = brand;
        this.color = color;
    }
}

super

super 是表示父类对象的关键字,可以调用父类的构造方法、成员方法、成员变量。通常用于以下情况:

  1. 在子类中调用父类的构造方法进行初始化操作:使用 super 关键字加上参数列表来调用父类的构造方法。

示例:

public class Student extends Person {
    private String school;
    public Student(String name, int age, String school) {
        super(name, age); // 调用父类的构造方法进行初始化
        this.school = school;
    }
}
  1. 在子类中调用父类的方法或成员变量:使用 super 关键字来调用父类的方法或成员变量。

示例:

public class Vehicle {
    protected String brand;
    public void run() {
        System.out.println("Vehicle is running...");
    }
}
public class Car extends Vehicle {
    private int price;
    public void run() {
        super.run(); // 调用父类的 run 方法
        System.out.println("Car is running...");
    }
    public void setBrand(String brand) {
        super.brand = brand; // 使用 super 引用父类的成员变量 brand
    }
}

this能否调用到父类使用

this 关键字仅能在当前对象中使用,不能调用父类的方法或成员变量。如果想要使用父类的方法或成员变量,应该使用 super 关键字。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中this和super的区别及this能否调用到父类使用 - Python技术站

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

相关文章

  • python-根据url地址下载文件

    Python根据URL地址下载文件的完整攻略 本文将提供一份关于Python根据URL地址下载文件的完整攻略,包括定义、实现步骤、示例以及注意事项。 定义 Python根据URL地址下载文件是指通过Python程序,从指定的URL地址下载文件本地计算机。 实现步骤 以下是Python根据URL地址下载文件的步骤: 导入必要的库 在Python程序中,需要导入…

    other 2023年5月9日
    00
  • Windows Server 2012搭建FTP站点详细教程(阿里云)

    Windows Server 2012搭建FTP站点详细教程(阿里云) 1. 安装IIS和FTP服务 在Windows Server 2012中安装IIS和FTP服务的方法如下: 单击服务器管理器中的“管理”菜单,然后单击“添加角色和功能”。 在“添加角色和功能向导”中单击“下一步”,然后选择“安装基于角色或基于功能的安装”。 在“服务器角色”窗口中,选中“…

    other 2023年6月27日
    00
  • 仿iPhone通讯录制作小程序自定义选择组件的实现

    针对“仿iPhone通讯录制作小程序自定义选择组件的实现”的攻略,我可以提供以下几点详细讲解: 1. 实现思路 我们首先需要明确的是,我们要实现的是一个自定义选择组件,该组件应该至少拥有以下几个特点: 可滑动选择 带有动画效果 可以自定义选择项(例如可以用于选择省份、城市、日期等) 针对以上需求,我们可以参考下面的实现思路: 使用小程序的基本组件和API,例…

    other 2023年6月25日
    00
  • redis服务器环境下mysql实现lnmp架构缓存

    以下是在Redis服务器环境下使用MySQL实现LNMP架构缓存的详细攻略: 安装和配置Redis服务器: 在服务器上安装Redis,并确保Redis服务器正常运行。 配置Redis的内存大小和其他相关参数,以适应您的应用需求。 安装和配置MySQL数据库: 在服务器上安装MySQL数据库,并确保MySQL服务器正常运行。 创建您的数据库和相应的表结构,以存…

    other 2023年10月17日
    00
  • Thinkphp开发–集成极光推送

    下面给您详细讲解“Thinkphp开发–集成极光推送”的完整攻略,过程中会包含两条示例说明: 一、前置条件 在使用Thinkphp开发集成极光推送前,需要先满足以下的前置条件: 申请极光推送账号:在极光官网上进行账号注册,获取AppKey和Master Secret。 安装极光推送SDK:可以通过composer引入Jpush官方sdk或者手动下载集成。 …

    other 2023年6月26日
    00
  • MyBatis 配置之集合的嵌套方式

    MyBatis 配置之集合的嵌套方式 在 MyBatis 中,我们可以使用集合的嵌套方式来处理复杂的数据结构。这种方式可以帮助我们更好地组织和管理数据,提高代码的可读性和可维护性。下面是详细的攻略,包含两个示例说明。 1. 嵌套集合的配置 要使用嵌套集合,我们需要在 MyBatis 的配置文件中进行相应的配置。首先,我们需要定义一个包含嵌套集合的实体类。例如…

    other 2023年7月27日
    00
  • 五分钟学会HTML5的WebSocket协议

    五分钟学会HTML5的WebSocket协议 WebSocket是HTML5协议之一,用于在网络应用中进行实时双向通信。它和HTTP协议不同,可以在一条TCP连接上实现双向通信,显著提升了网络应用的性能和效率。 1. WebSocket的基础知识 1.1 WebSocket的URL格式 WebSocket的URL格式与HTTP协议基本相同,只是在http或h…

    other 2023年6月27日
    00
  • SpringBoot @Scope与@RefreshScope注解使用详解

    SpringBoot @Scope与@RefreshScope注解使用详解 1. @Scope注解 @Scope注解用于指定Spring Bean的作用域。在Spring Boot中,常用的作用域包括Singleton(默认)、Prototype、Request、Session等。 示例说明1:指定作用域为Prototype @Component @Scop…

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