选择抽象类还是接口?
如果要创建一个模型,且该模型将由紧密相关的对象采用,可以使用抽象类。如果要创建由不相关对象采用的功能,就使用接口。
如果必须从多个来源继承行为,就使用接口。
如果知道所有类都会共享一个公共的行为实现,就可以使用抽象类,并在其中实现该行为。
总结:
抽象类是模板;接口是规范。
抽象类的功能要远超过接口,但定义抽象类的代价高。因为高级语言来说(同理实际设计中)每个类只能继承一个类。在这个类中,你必须继承或编写出其所有子类的所有共性。虽然接口在功能上会弱化许多,但是它只是针对一个动作的描述。而且你可以在一个类中同时实现多个接口。在设计阶段会降低难度的。
如果要创建一个模型,且该模型将由紧密相关的对象采用,可以使用抽象类。如果要创建由不相关对象采用的功能,就使用接口。
如果必须从多个来源继承行为,就使用接口。
如果知道所有类都会共享一个公共的行为实现,就可以使用抽象类,并在其中实现该行为。
总结:
抽象类是模板;接口是规范。
抽象类的功能要远超过接口,但定义抽象类的代价高。因为高级语言来说(同理实际设计中)每个类只能继承一个类。在这个类中,你必须继承或编写出其所有子类的所有共性。虽然接口在功能上会弱化许多,但是它只是针对一个动作的描述。而且你可以在一个类中同时实现多个接口。在设计阶段会降低难度的。