gpt4 book ai didi

java - Java 中的变量和方法阴影

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:26:08 24 4
gpt4 key购买 nike

基本上我想知道为什么静态方法不能被实例方法隐藏,(我知道为什么,在某些情况下会导致歧义),而静态变量可以被实例变量隐藏(它适用仅适用于子类)。

例子:

public class Apartment{

static int area = 10;

public static int getArea(){
return area;
}
}

class BedroomFlat extends Apartment {

int area = 10;// no problem at all

public int getArea(){ // illegal line it cannot hide the super static method
return area;
}
}

因此,如果我尝试在父类(super class)中声明 int area(实例变量)和 static int area,它会报错,但当在子类中声明,即使 static int area 从子类中仍然可见。

尝试使用实例方法隐藏静态方法与尝试使用实例变量隐藏静态变量之间在行为方面的确切区别是什么。

提前致谢。

最佳答案

没有人可以继承静态方法和字段,因为它们属于类。

在您的情况下,您没有覆盖父级的getArea();,您正试图创建具有相同签名的方法——这会导致编译错误。

关于java - Java 中的变量和方法阴影,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15320474/

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