在繼承後,如果子類和父類中有同名的方法,子類呼叫同名的方法後,呼叫的是子類自己的方法,這就叫做覆蓋。
當我們開發時,原有的父類---a類功能已經不夠強了,我們需要對他進行功能修改,但又不能改動他的**,因此我們可以用b類繼承a類,然後在b類中重寫a類的功能方法,達到不修改a類就能改動a類功能的目的。
注意:為什麼不能改動父類的**?
因為實際開發中,原有的**可能包括很多類,類與類之間可能又有很多關聯,所謂牽一髮而動全身,所以盡量是不改動原有的**。
拿手機為例,一家手機公司的的phone1產品 太老了,功能不好使,因此公司就開發了新的產品phone2
例如:
class phone1
public void photo() //phone1的拍照功能
}class phone2 extends phone1
}public class main
}
列印結果:version2 call
在實際開發中,用這種方法就可以完成產品公升級而不需要改動原有的父類**。
java 方法的覆蓋
1.運用場景 假如有100個類,分別為sub1,sub2,sub3,它們的乙個共同行為是寫字,除了sub1類用腳寫字以外,其餘的類都用手寫字。我們可以抽象出乙個父類base,它有乙個方法write 表示寫字,為了提高 可重用性,write 應該採用大多數子類的實現方式。定義父類如下 public v...
java方法的覆蓋
方法覆蓋,從字面就可以知道,它是覆蓋了乙個方法並且對其重寫,以求達到不同的作用。對我們來說最熟悉的覆蓋就是對介面方法的實現,在介面中一般只是對方法進行了宣告,而我們在實現時,就需要實現介面宣告的所有方法。除了這個典型的用法以外,我們在繼承中也可能會在子類覆蓋父類中的方法。在覆蓋要注意以下的幾點 1 ...
Java的方法覆蓋與變數覆蓋
首先,我們看看關於過載,和覆蓋 重寫 的簡明定義 方法過載 如果有兩個方法的方法名相同,但引數不一致,哪麼可以說乙個方法是另乙個方法的過載。方法覆蓋 如果在子類中定義乙個方法,其名稱 返回型別及引數簽名正好與父類中某個方法的名稱 返回型別及引數簽名相匹配,那麼可以說,子類的方法覆蓋了父類的方法 我們...