gpt4 book ai didi

java - 为什么分配给子类的引用不能访问子类的成员

转载 作者:行者123 更新时间:2023-11-29 03:59:16 24 4
gpt4 key购买 nike

class pract1 {

String s="s1";
public String getS()
{
return s;
}
}
class pract extends pract1{
String a="s2";
public String getS() {
return a;
}
public static void main(String[] args) {
pract1 parent= new pract1();
pract child= new pract();
parent=child;
System.out.println(parent.a); // syntax error it should be (parent.s);
System.out.println(parent.getS());
}
}

在这里,我将child 分配给parent。使用 parent 引用,我应该能够访问 a 字段。但是,这会产生编译错误。为什么?

最佳答案

您不能从父类引用访问子类的实例变量,因为绑定(bind)是在编译时进行的(并且在编译时很明显,'a' 不是 pract1 的一部分)与重写方法不同绑定(bind)运行时即动态绑定(bind)

关于java - 为什么分配给子类的引用不能访问子类的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4480804/

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