Java多态性错误

时间:2016-03-14 19:48:16

标签: java polymorphism

{{1}}

为什么我们不能这样做? obj有一个Child类型的对象,但仍然无法访问显示功能?

2 个答案:

答案 0 :(得分:1)

执行此操作时:

Parent obj = new Child();

您正在创建Parent类型的变量。您可以将new Child()引用到obj是因为ChildParent的子类。

由于obj被声明为Parent,因此它只能访问Parent的属性和方法。

要使其能够访问Child的方法和属性,您可以将其强制转换:

((Child)obj).display();

将其转换为Child就像告诉Java从现在开始将obj视为Child

答案 1 :(得分:0)

你不能这样做因为Parent类没有方法显示,所以很简单,如果你想调用方法那么你必须做一些叫做cast的事情

即将父级转换为子级

((Child)obj).display();

PS:考虑重新命名这些类,以便在用简单的人类词汇制定继承时更有意义......