是否有理由使用100%抽象类而不是接口?你能不能给我一个很好的例子,这样我可以把握一下这个概念?
更新:100%抽象类 - >抽象类,只有抽象方法.如果php和java之间在这方面存在差异,我很好奇.
Update2:即使我理解大多数原因,我对概念更感兴趣而不是技术原因.
Boz*_*zho 18
如果"100%抽象类"是指"没有具体方法的抽象类",那么我可以想出一个原因:可见性.
您可以定义要保护的抽象方法,因此不是该类的公共API的一部分.然而,这似乎是一个奇怪的设计.
我想到的另一件事是你期望为基类添加通用功能 - 即它是否可能有一些所有实现者共享的实用方法,但这些方法没有实现.
另一件事 - 实例变量.您可以在抽象类中包含可继承的实例变量.
Arn*_*sch 11
"100%抽象类"在界面上可能是有利的一种情况是API稳定性是关键问题的地方.
如果您编写API,其他人应该实现您的界面,您必须坚持使用该界面.您以后不能向接口添加任何方法,因为这会破坏所有客户端(您必须通过实现第二个接口来解决此问题,并让您的代码再次检查instanceof检查的用法并提供回退).
如果您对某个类实现了相同的功能,则可以在以后添加(非抽象)方法而不会破坏客户端.
| 归档时间: |
|
| 查看次数: |
3473 次 |
| 最近记录: |