给定一个只有抽象方法的抽象类,这个类和一个接口有什么区别?
我所能看到的唯一不同之处在于与接口一起使用多重继承的能力。
在这种情况下,是否还有其他重要的区别来决定是否要这样做或使用接口呢?
发布于 2014-06-13 18:33:31
另一方面,对于接口,接口本身与实现接口的类之间的关系不一定很强。例如,如果我们有一个名为"House“的类,那么该类还可以实现一个名为"AirConditioning”的接口。拥有空调并不是房子的重要组成部分(尽管有些人可能会认为这一点),而且这种关系并不像“TownHouse”类和" House“类之间的关系那样牢固,或者”公寓“类之间的关系源自”House“类。
因为TownHouse是House的一种类型,所以这种关系非常强大,并且更适合通过继承而不是接口来定义。
所以,我们可以总结第一点,当抽象类和它派生的类之间有很强的关系时,抽象类将更合适。同样,这是因为抽象类与继承非常紧密地联系在一起,这意味着强大的关系。但是,对于接口,接口和实现接口的类之间不需要有很强的关系。
发布于 2014-06-11 23:01:46
将非公共方法声明为抽象的能力.将抽象类设置为从其他父类派生的能力,并由此向其子类提供父类的方法。确定您的Ctor将得到什么的能力,并通过它强制派生类“知道”某些数据。
https://stackoverflow.com/questions/24173934
复制相似问题