Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/370.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将一个接口扩展到另一个接口_Java_Interface - Fatal编程技术网

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 {

}