this、super的引用

本文详细解析了Java中this和super关键字的使用方法及应用场景。包括如何利用this关键字访问同一对象的属性和方法,调用同一类的不同构造函数;同时介绍了super关键字如何帮助我们访问父类被隐藏或覆盖的成员变量和方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

This:

    关键字this是指向调用对象本身的引用名,可以用this关键字引用对象的实例成员;

    this关键字可以用来引用类的隐藏数据域;

//调用隐藏对象
public class F{
      private int i = 5;
      private static double k = 0;
      
      public void setI(int i){
        this.i = i;
}
     public void setK(double k){
      this.k = k;
}

}

    this关键字可以用来用调用同一个类的另一种构造方法;

public class Circle{
    private double radius;
    
    public Circle(double radius){
       this.radius = radius;   //this关键字用于调用做构建对象的隐藏数据域
}
    public Circle(){
    this(1.0);       //this关键字用于调用另一个构造方法
}

}

    java要求的构造方法中,语句this应放到任何其他可执行语句之前出现;

    如果一个类有多个构造方法,做好尽可能使用this来实现他们,这样做通常可以简化代码,使类易于阅读和维护

Super:

    对于一个类的父类,引用super可以完成同this一样的工作。可以用它来引用超类中被遮蔽或覆盖的成员。能够调用超类的最初的方法,这就允许我们在执行额外工作之前或之后委托给他们行为。从而将其作为新方法的一部分来使用。

class Animal {
   void eat(Food f) throws InedibleException{
    //consum food
}
}
class Herbivore extends Animal{
    void eat(Food f) throws NeatInedibleException{
    //check if edible
   .....
   try{
   super.eat(f);
}catch(InedibleException e){......}
}
}

 这个例子中Herbivore类(食草动物)覆盖了 Animal eat() 方法,从而对事物先做出检查,完成任务之后,使用super.eat()来调用其超类中的eat()方法。

如果没有超类将无法访问覆盖方法。




C/S   :  客户端服务程序

B/S   :  浏览器端服务程序

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值