我听说我们可以通过继承来实现代码的可重用性,例如:从父类(super class)A中,如果扩展了类B,我们可以将除私有(private)方法之外的方法继承到类B,并假设两个类都在同一个包中。如果这是在继承中实现代码可重用性的方法,那么我们也可以通过创建该类 A 的对象来获得同样的效果,对吧?我的意思是通过创建一个对象,我们可以访问私有(private)方法以外的公共(public)方法,对吧?为什么我们需要继承?继承中的代码可重用性如何?
最佳答案
无论谁告诉你这个,都给了你“糟糕”的建议。
继承的主要目标不是为了代码的重用。
类旨在构建现实的模型(也称为抽象);更具体地说:一个有用模型。其中一个核心部分是:您不必写下class A extends B
,因为这样做方便,或者因为它可以帮助您节省一些编码工作。
你这样做,因为在你的问题域中,任何 A is-A B 都是有意义的。这是继承的核心:两个对象显示相同 行为。
而且:相反,更相关和更被接受的范式恰恰相反:FCoI (优先考虑组合而不是继承)。
请不要误会我的意思:代码重复是作为程序员可以做的最糟糕事情之一。因此,避免代码重复是良好编程的核心优点之一。但是:继承会造成类之间的耦合;通过放弃类的隔离来防止代码重复并不是一个好主意。因为继承可以防止您在另一个上下文中重复使用类。
含义:有时继承可以很好地防止代码重复;但你必须小心。
关于java - java中继承中实现代码重用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43745308/