假设我有一个接口(interface) C 和一个实现它的类 A。
现在假设我想将 A 的实现更改为 C 中的所有函数(除了一个),使用类 B。我应该扩展 A 并覆盖 C 还是应该将 C 实现为一个新的独立类?
假设一些电话公司想要实现他们的基本接口(interface) Phone,并且他们已经有了 OldPhone 的一些旧实现,他们希望保留其所有功能:调用电话、挂断电话、发送短信 - 但他们不这样做不想改变所有这些,但他们确实想要其他新功能来制造他们的新智能手机 - 他们应该扩展 OldPhone 还是创建一个新类?
我想知道什么时候应该扩展类以及什么时候应该从一开始就实现接口(interface) - 一方面我不想复制代码,但另一方面有时是类型,即使它们都是一个A,概念上不同。
最佳答案
如果您有想要重用的代码,那么扩展是更好的选择。
但是问问自己:新手机是旧手机的更好版本还是功能相似的全新手机?
- 第一种情况:扩展。
- 在第二个抽象中,您要寻找的是:提取共有的函数并将它们放入一个抽象类中,两个类都将扩展该抽象类。
关于java - 实现还是扩展?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17194256/