Java 将一个接口扩展到另一个接口
假设我这里有两个界面,Java 将一个接口扩展到另一个接口,java,interface,Java,Interface,假设我这里有两个界面,Moveable和Walkable(很抱歉这个坏例子,但是如果你有更好的,请发布它) 而接口Walkable是Runnable的一个子类,当Human类实现Walkable接口时,Human类应该从接口Walkable和void run()提供void walk()的实现从界面可运行?接口Walkable是否从接口Runnable继承抽象方法run()?是的,您的类将需要同时实现walk()和run()方法 当Human类实现Walkable接口时,Human类是否应提供来
Moveable
和Walkable
(很抱歉这个坏例子,但是如果你有更好的,请发布它)
而接口
Walkable
是Runnable
的一个子类,当Human
类实现Walkable
接口时,Human
类应该从接口Walkable
和void run()提供void walk()的实现
从界面可运行
?接口Walkable
是否从接口Runnable
继承抽象方法run()
?是的,您的类将需要同时实现walk()和run()方法
当Human类实现Walkable接口时,Human类是否应提供来自Walkable接口的void walk和来自runnable接口的void run()的实现
对。通过尝试编译代码,您可以很容易地发现这一点。编译器会抱怨,因为类Human
中没有run
和walk
方法的实现
walkable接口是否从runnable接口继承了抽象方法run()
是。可行走是可运行的,因此必须定义run()函数。是的,您的人应该行走和运行
这意味着要把事情颠倒过来不?如果你跑,你当然可以走。但是受伤的人可以不跑就走 是的,一个接口可以扩展多个接口,实现类应该实现实现实现接口继承的所有方法
因此,您的问题是肯定的,您必须实现这两种方法如果人类类从接口walkable为void walk提供实现,从接口runnable为void run()提供实现吗?
是的,当您的Walkable
接口扩展Runnable
时,它还继承了run
方法,这意味着如果Human
类正在实现Walkable
接口,它必须同时实现这两种方法,否则它应该是抽象的
实现接口
是一种契约,其中实现类必须实现接口中声明的所有方法
接口Walkable是否从接口Runnable继承抽象方法run()
是的,这是OOPS继承的概念。人类类需要实现这两种方法,否则-必须将其声明为抽象的。是的,Walkable接口从Runnable接口继承了run()方法
您可以了解有关接口和继承的更多信息。为什么不试试看呢?是的!它从父接口继承方法。您的类需要实现这两种方法,否则编译器会抱怨。@EdwinDalorzo如果可以,我就不会在这里发布它。显然,本单元中没有java编译器。是的,通过继承另一个接口来实现接口的类需要实现两个接口中的所有方法@Puce什么是标准,什么时候我更喜欢接口而不是抽象类?如果你有部分实现或者必须扩展一个特定的基类,通常你会使用抽象类。还考虑为接口实现部分实现(抽象类),如果对于某些方法有良好的默认实现。一般来说,我建议尽可能选择接口而不是没有接口的抽象类。这使合同更清楚了。在这种情况下,您可以在Human中实现run方法,但不能实现walk方法(或者反过来)。甚至没有。但是,您必须将人声明为抽象的,子类必须提供缺少的实现,或者必须声明为抽象的。
interface Runnable{
void run();
}
interface Walkable extends Runnable {
void walk();
}
public class Human implements Walkable {
}