gpt4 book ai didi

java - 运行时多态性和向上转型、向下转型

转载 作者:行者123 更新时间:2023-12-02 05:45:01 27 4
gpt4 key购买 nike

 class AA {  
void run()
{
System.out.print("In AA");
}
}
class B extends AA{
void run()
{
System.out.print("In B");
}
public static void main(String z[])
{

//upcasting
AA a= new B();
a.run();
}
}

这里向上转换工作正常,但现在我尝试像这样调用父类方法..

B b=new AA();

它给出了编译时错误,因此将其强制转换。

 B b=(B) new AA();

但是,我不确定为什么它没有按照我的预期工作。有什么想法吗?

最佳答案

什么

B extends AA

意思是,BAA,但AA不是B。我们举个例子:

Employee extends Person

这意味着 EmployeePerson,但 Person 不一定是 Employee

当你这样做时字符串文字未正确用双引号关闭 AA a = new B();

a 的引用类型将为 AA,但对象类型将为 B。这种声明只允许调用AA中声明的方法。

正在做

B b = new AA();

不起作用,因为 AA 不是 B,如上面示例中所述。

关于java - 运行时多态性和向上转型、向下转型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24156125/

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