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
继承。基类。
如果你让这个例子更现实,那就有意义了。更改Device
至Ringable
,带有 ring
方法。创建基类SimplePhone
实现Ringable
,并实现 ring
方法。并创建 SimplePhone
的子类叫BeautifulPinkPhone
。漂亮的粉色手机将能够响起,因为它只是一个简单的粉色手机。
关于java - Java接口(interface)实现的疑问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7552152/