我有一个接口(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/