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
Oop 接口对支持多重继承的OO语言有用吗?_Oop_Inheritance_Multiple Inheritance - Fatal编程技术网

Oop 接口对支持多重继承的OO语言有用吗?

Oop 接口对支持多重继承的OO语言有用吗?,oop,inheritance,multiple-inheritance,Oop,Inheritance,Multiple Inheritance,我听说引入接口是为了弥补面向对象语言不支持多重继承而只支持单一继承的不足 接口是否仅用于此目的 接口对支持多重继承的OO语言有用吗 《设计模式》强调了界面的重要性,而在编写时,C++(具有多重继承)是最流行的面向对象语言,java甚至还不存在。(这本书是在Java发布前一年出版的。) 理解对象的类和类型之间的区别很重要 对象的类定义了对象的实现方式。。。相反,对象的类型仅指其接口,即它可以响应的请求集 很容易混淆这两个概念,因为许多语言没有明确区分 许多设计模式都依赖于这种区别 这本书创造了

我听说引入接口是为了弥补面向对象语言不支持多重继承而只支持单一继承的不足

接口是否仅用于此目的

接口对支持多重继承的OO语言有用吗

《设计模式》强调了界面的重要性,而在编写时,C++(具有多重继承)是最流行的面向对象语言,java甚至还不存在。(这本书是在Java发布前一年出版的。)

理解对象的类和类型之间的区别很重要

对象的类定义了对象的实现方式。。。相反,对象的类型仅指其接口,即它可以响应的请求集

很容易混淆这两个概念,因为许多语言没有明确区分

许多设计模式都依赖于这种区别


这本书创造了一个术语“接口的程序,而不是实现。”

这是自2014年(我了解接口的时候)以来困扰我的问题。不,接口的引入不仅仅是为了克服单一继承语言的限制。接口就是一个接口——某种东西与世界其他地方交互的方式。这是每个实现类都必须履行的特定契约。一个类似的例子是API——你不在乎服务是从一个类“继承”还是从另一个类“继承”,只要它提供了它所说的API,但如果我们可以直接使用这些函数,它仍然有一些用处。无论如何,我们不能仅仅通过提供方法签名来定义合同D真诚的道歉。你的意思是,如果你有接口/合同,这些功能有用吗?接口是主合同,而不是功能。类可能有一个名为
Foo()
的方法。这并不意味着它实现了
ITaxService.Foo()
。它恰好与合同的方法同名。你也不在乎是什么履行了这个合同。只要你得到了实现合同的任何东西,你就可以使用它