gpt4 book ai didi

java - 访问 Java 中父类(super class)的覆盖字段?

转载 作者:行者123 更新时间:2023-11-29 04:50:22 25 4
gpt4 key购买 nike

我已将子类中的一个字段命名为与父类(super class)中的相同。我基本上已经覆盖了父类中的字段。

如何区分基类中的字段和扩展类中的同名字段?

最佳答案

关键字 super 大多数时候与访问父类(super class)方法结合使用,大多数时候是父类的构造函数。

关键字this大多数时候用来区分类的字段和同名的方法参数或局部变量。

但是,您也可以使用 super 访问父类(super class)的字段或使用 this 调用方法(这是多余的,因为所有调用都是虚方法调用),或另一个来自同一类的构造函数。

这是访问字段的用法示例。

public class Base {

public int a = 1;
protected int b = 2;
private int c = 3;

public Base(){

}
}

public class Extended extends Base{

public int a = 4;
protected int b = 5;
private int c = 6;

public Extended(){

}

public void print(){
//Fields from the superclass
System.out.println(super.a);
System.out.println(super.b);
System.out.println(super.c); // not possible

//Fields from the subclass
System.out.println(this.a);
System.out.println(this.b);
System.out.println(this.c);
}
}

public static void main(String[] args) {
Extended ext = new Extended();
ext.print();
}

您始终可以重命名子类中的字段以避免冲突,但是如果您想将方法参数或局部变量与父类(super class)字段区分开来,请像使用 this 一样使用 super

关于java - 访问 Java 中父类(super class)的覆盖字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35648651/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com