java - Java接口(interface)实现的疑问

标签 java

interface Device
{
  public void doIt();
}

public class Electronic implements Device
{
   public void doIt()
   {
   }
}

abstract class Phone1 extends Electronic
{
}
abstract class Phone2 extends Electronic
{
   public void doIt(int x)
   {
    }
}

class Phone3 extends Electronic implements Device
{   
    public void doStuff()
    {
     }
}

任何人都可以告诉我为什么会编译。因为“Phone3”实现了 Device 并且它应该有 doIt() 方法,但它没有。但仍然可以编译。我可以认识Y吗?

最佳答案

Phone3延伸Electronic ,和Electronic有方法doIt() ,实现Device界面。执行doIt因此,方法只是从Electronic继承。基类。

如果你让这个例子更现实,那就有意义了。更改DeviceRingable ,带有 ring方法。创建基类SimplePhone实现Ringable ,并实现 ring方法。并创建 SimplePhone 的子类叫BeautifulPinkPhone 。漂亮的粉色手机将能够响起,因为它只是一个简单的粉色手机。

关于java - Java接口(interface)实现的疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7552152/

相关文章:

java - 有没有办法标准化进入 Spring 应用程序的所有请求有效负载中的所有字符串?

java - 使用 JavaScript 传递属性值

java - SQLiteException 没有这样的列 : plus (code 1)

java - 使用 WebEngine 的网页内容选择器

java - 哪个版本的 Wicket 在 J2SE 1.4 上运行?

java - 无符号类型的 BridJ 类型映射

java - 泛型方法上奇怪的 java 泛型编译器行为

Java:Instanceof 和泛型

java - AWS Polly Java 客户端出现错误 : Unable to load region information from any provider in the chain

java - 在 Alert 上调用 initOwner 时的 NPE (JavaFX)