我读了很多关于 Java 中的接口和类继承的文章,我知道如何做到这两点,并且我认为我对两者都有很好的感觉。但似乎没有人真正将两者并排比较,并解释何时以及为何要使用其中之一。我没有发现很多时候实现接口会比扩展超类更好。
那么什么时候实现接口以及什么时候扩展超类呢?
Use an 界面如果你想定义合同。 IE。 X 必须接受 Y 并返回 Z。它并不关心how代码正在这样做。一个类可以实现multiple接口。
Use an 抽象类如果你想定义默认行为在非抽象方法中,以便最终用户可以重用它,而无需一次又一次重写。一个类可以从only one其他类。一个抽象类only抽象方法可以像接口一样定义得很好。没有任何抽象方法的抽象类可被识别为模板法 http://en.wikipedia.org/wiki/Template_method_pattern模式(参见这个答案 https://stackoverflow.com/questions/1673841/design-patterns-in-java-api对于一些现实世界的例子)。
每当您想要为最终用户提供定义默认行为的自由时,抽象类又可以完美地实现接口。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)