正如我所发现的,抽象类是一个接口,当它实现零时。我是对的吗?
那么为什么在某些语言中存在接口类,我的意思是C ++没有接口。
是不是很快就会过时的?答案 0 :(得分:6)
单个类只能从一个类继承。但是,可以在单个类上应用多个接口。抽象类不能替换接口。
答案 1 :(得分:4)
C ++没有接口,因为它支持多重继承,而C#则不支持。 C#提供了解决这个障碍的接口,所以不,接口不会过时。
答案 2 :(得分:2)
接口存在于Java等语言中,以便提供缺少多重继承。因此,该语言提供了从一个基类继承的可能性,但保证了实现不同接口的可能性。
答案 3 :(得分:1)
不,因为接口具有一个属性,只有抽象方法(或任何其他类的类)的抽象类不具备:一个类可以实现任意多个接口,而一个类只能从另一个类继承。因此,如果您将所有接口都转换为抽象类,那么您将永远无法使类“实现”多个“接口”。
但是,可以注意到,您的观察在某些其他语言中是正确的,而不是C#。例如,在C ++中,没有单独的接口构造; C ++ 中的“接口”只是抽象类的抽象类。
答案 4 :(得分:1)
C ++没有特定的接口语法,例如一个interface
关键字,因为这恰好是语言设计者的设计决策。但是C ++确实提供了对接口的完全支持。
接口不会过时。实际上,使用接口的技术正在被越来越广泛地使用。
答案 5 :(得分:1)
C ++没有接口,因为与Java不同,它允许多重继承。这在某种程度上使事情复杂化。