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類來「添加」這個功能。 –
感謝它清除了這個概念。 :) –