Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.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
Class 为什么一个类可以实现多个接口?_Class_Oop_Inheritance_Interface_Implements - Fatal编程技术网

Class 为什么一个类可以实现多个接口?

Class 为什么一个类可以实现多个接口?,class,oop,inheritance,interface,implements,Class,Oop,Inheritance,Interface,Implements,这是关于oop中接口的唯一问题,我似乎无法完全解释。那么,为什么在oop中一个类可以实现多个接口呢 如果你能提供一些例子,那就太好了。提前感谢。概念示例 java.util Class HashMap<K,V> 我认为多重接口的方式是接口就像动词或形容词,类就像主语 tiger可以运行,因此tiger类可以实现Runnable接口 老虎可以吃东西,因此tiger类可以实现Eatable接口 因为类的实例可以有不同的行为,所以我们可以有不同的对应接口 现实例子 java.util C

这是关于oop中接口的唯一问题,我似乎无法完全解释。那么,为什么在oop中一个类可以实现多个接口呢


如果你能提供一些例子,那就太好了。提前感谢。

概念示例

java.util Class HashMap<K,V>
我认为多重接口的方式是接口就像动词或形容词,类就像主语

tiger可以运行,因此
tiger类
可以实现
Runnable接口

老虎可以吃东西,因此
tiger类
可以实现
Eatable接口

因为类的实例可以有不同的行为,所以我们可以有不同的对应接口

现实例子

java.util Class HashMap<K,V>
java.util类HashMap
它实现了
Serializable、Cloneable、Map


所有接口都是类HashMap的特性。

首先,java不支持多重继承,因此不能同时扩展两个类。但是,java支持多个接口的实现。Mingyu给出的示例对我来说似乎很完美。

接口本质上是抽象的(当然不是定义,只是说),因此所有方法都必须在具体的子类中实现,这样我们就避免了致命的死亡钻石,支持多重继承的方式本身就是允许多接口实现的答案


还有许多其他用途,但由于上面的解释,没有任何其他理由限制多个实现的概念……据我所知。

Java类无法扩展多个类,因为diamond♦ 问题钻石♦ 由于构造函数链接而出现问题。 接口中不存在构造函数,因此没有菱形♦ 如果我们实现多个接口,就会出现问题。这就是为什么Java类可以实现多个接口