我最近在询问是否应该实现接口或抽象类的问题question。 Scottm给出了回答,建议我同时使用两种方式,但我仍然不确定为什么要这样做。 长期而言有什么好处吗?以这种方式做有哪些优点?
以下是我认为的一些好处:
- 我可以在抽象类中添加方法而不会破坏实现,但对于接口,我会破坏它。
- 我可以从多个接口继承,但只能从一个抽象类继承
- 抽象类允许我定义标准行为,但如果我想要覆盖它,则可以这样做。
这里又有一个问题。 如果我实现一个接口,接口是否只包含所有子类都可以执行的方法?如果我需要额外的逻辑,我应该创建具体类或带有更具体实现的抽象类。