gpt4 book ai didi

java - 通过子类引用变量访问父类(super class)​​对象

转载 作者:行者123 更新时间:2023-12-01 22:53:09 30 4
gpt4 key购买 nike

为什么我们不能通过子类引用变量访问父类(super class)​​对象..我有一个代码讨论我的问题。

class A
{
void set()
{
System.out.println("i am in a");
}
}

class B extends A
{
void set()
{
System.out.println("i am in b");
}

public static void main(String args[])
{
A instance=new B(); //line
instance.set(); //this would call set() in B.
B in=new A(); //But this line gives error
}
}

有人可以帮忙吗?

最佳答案

子类可能具有父类(super class)没有的成员,因此不允许将父类(super class)实例分配给子类引用。
想象一下 B 有另一个方法,subMethod()。如果您可以将 A 实例分配给 B 引用,则可以编写以下代码:

B example = new A();
example.subMethod();

这会中断,因为 A 没有 subMethod()

反之亦然,因为子类总是拥有父类(super class)所拥有的一切。

另外,请注意静态方法不能被重写,只有实例方法是多态的。

关于java - 通过子类引用变量访问父类(super class)​​对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24432620/

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