我认为你误解了接口和抽象类的真正含义.
接口是一种编程结构,您可以在其中定义要向公共模块或其他模块公开的功能/服务.您承诺提供某些功能或服务的合同,但隐藏实施以便在不影响合同的情况下更改实施.
抽象类是一个部分实现的类,除了作为具有实际意义的多个子类的父类之外,它没有任何实际意义.抽象类是特殊的父类,它为多个子类提供默认功能.由于没有合适的具体父类,因此它被创建为抽象.
在一个好的设计中,您应该始终创建一个界面.但抽象类是可选的.如果你不能找到一个具体的父类,创建一个抽象类,然后实现该接口为这些接口函数提供的默认实现(如果可能),否则将其标记为抽象函数,离开落实到子类.