我知道开闭原则意味着对扩展开放,对修改封闭。考虑如下示例
public class Vehicle{
public void service(){
//vehicle servicing code
}
}
public class Bike extends Vehicle{
public void service(){
// bike specific servicing
}
}
现在我明白
Bike
类扩展了 Vehicle
并使用开放封闭原则添加了新功能。考虑我创建
Vehicle
类的 jar 文件,然后 Bike
类从 jar 扩展 Vehicle
类。在这种情况下,我们不能修改 Vehicle
类并且 Bike
扩展它。这是开闭原则的一个很好的例子吗?我想知道 OCP 与继承有何不同
最佳答案
OCP 与继承没有区别,而是 OCP 的“开放”部分对扩展开放,但应关闭以进行修改。
IE。代码应该只针对错误/错误进行修改,但对于新的扩展或对应该扩展的功能的更改。
作为旁注,我相信这会更好地放在程序员.stackexchange.com 站点上。
关于inheritance - 开闭原则和继承的区别,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29497978/