1
我知道开放封闭原则意味着开放延伸和封闭进行修改。考虑一个例子如下开放封闭原则与继承之间的区别
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是如何与继承不同的
考虑我创建Vehicle类的jar文件,然后Bike类从jar扩展Vehicle类。在这种情况下,我们不能修改Vehicle类,Bike扩展它。这是开放封闭原则的一个好例子吗? –
我想说清楚一点,假设你有一个车辆类,你甚至可以创建一个车类,并且他们都定义了你如何服务他们。现在你把它作为一个罐子发布,如果有人带着自行车或者甚至是特定的汽车说有特定服务要求的兰博基尼,那么你将不得不延长Car类或Vehicle类来“添加”这个功能。 –
感谢它清除了这个概念。 :) –