java - 我无法多态地访问具体类的方法

标签 java interface polymorphism abstract concrete

我有一个接口(interface)MyInterface,它有两个方法doSomething()和doSomethingElse()。

我有一个实现此接口(interface)的抽象公共(public)类A。 我有一个类C,它扩展了类A,因此也实现了接口(interface)的方法。 在 main 方法中,我将类 C 的对象分配给 MyInterface 引用,如下所示: MyInterface myiface = new C();

问题是,如果我在任一类(抽象或具体)中添加一些方法,我无法通过引用 myiface 调用该方法。我得先把它放下来。 难道我不应该能够像Deitel程序员的Java SE8一书中所示那样多态地访问该类(第10章多态性和接口(interface))吗?

最佳答案

这样想...假设您的 MyInterface 名为“Animal”,并且您有两个类实现它,名为“Dog”和“Cow”。仅仅因为它们都是动物,你就不会指望狗会突然产奶,对吧?在这个类比中,giveMilk() 是一个仅由 Cow 类实现的方法。

你明白了吗?

关于java - 我无法多态地访问具体类的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46011846/

相关文章:

java - 如何在 Java 中暂停和恢复简单的游戏

c++ - 在每个实例的唯一虚拟 int type() 中使用静态转换来提高性能是否安全?

java - 如果我说所有 Java 对象都是多态的,对吗?

java - 如何使用 JavaFX 在启动时自动将字符串值分配给标签?

Javamail,获取邮件正文

delphi - 将 TInterfacedObject 转换为接口(interface)

c# - 我可以创建一个包装器来拦截对实现特定接口(interface)的对象的所有调用吗?

java - Java中的类中可以嵌套注解吗?

language-agnostic - 方法重载被认为是多态性吗?

java - Android如何构造与此类似的字节数组