即将过时的界面是什么?

时间:2011-05-01 14:46:31

标签: c# oop interface abstract-class

正如我所发现的,抽象类是一个接口,当它实现零时。我是对的吗?

那么为什么在某些语言中存在接口类,我的意思是C ++没有接口。

是不是很快就会过时的?

6 个答案:

答案 0 :(得分:6)

单个类只能从一个类继承。但是,可以在单个类上应用多个接口。抽象类不能替换接口。

答案 1 :(得分:4)

C ++没有接口,因为它支持多重继承,而C#则不支持。 C#提供了解决这个障碍的接口,所以不,接口不会过时。

答案 2 :(得分:2)

接口存在于Java等语言中,以便提供缺少多重继承。因此,该语言提供了从一个基类继承的可能性,但保证了实现不同接口的可能性。

答案 3 :(得分:1)

不,因为接口具有一个属性,只有抽象方法(或任何其他类的类)的抽象类不具备:一个类可以实现任意多个接口,而一个类只能从另一个类继承。因此,如果您将所有接口都转换为抽象类,那么您将永远无法使类“实现”多个“接口”。

但是,可以注意到,您的观察在某些其他语言中是正确的,而不是C#。例如,在C ++中,没有单独的接口构造; C ++ 中的“接口”只是抽象类的抽象类。

答案 4 :(得分:1)

C ++没有特定的接口语法,例如一个interface关键字,因为这恰好是语言设计者的设计决策。但是C ++确实提供了对接口的完全支持。

接口不会过时。实际上,使用接口的技术正在被越来越广泛地使用。

答案 5 :(得分:1)

C ++没有接口,因为与Java不同,它允许多重继承。这在某种程度上使事情复杂化。