方法覆蓋
1、什么時候考慮使用覆蓋?
子類繼承父類之后,當繼承過來的方法無法滿足當前子類的業務需求時,
子類有權利對這個方法進行重新編寫,有必要進行“方法的覆蓋”
方法覆蓋又叫做:方法重寫(重新編寫),英語單詞叫做:Override、Overwrite,都可以。
比較常見的:方法覆蓋、方法重寫、override
回顧一下方法重載!!!!
什么時候考慮使用方法重載overload?
當在一個類當中,如果功能相似的話,建議將名字定義的一樣,這樣
代碼美觀,並且方便編程。
什么條件滿足之后能夠構成方法重載overload?
條件一:在同一個類當中
條件二:方法名相同
條件三:參數列表不同(個數、順序、類型)
2、什么條件滿足的時候構成方法覆蓋?
第一:有繼承關系的兩個類
第二:具有相同方法名、返回值類型、形式參數列表
第三:訪問權限不能更低。
第四:拋出異常不能更多。
這里還有幾個注意事項:(多態語法)
注意1:方法覆蓋只是針對於方法,和屬性無關。
注意2:私有方法無法覆蓋。
注意3:構造方法不能被繼承,所以構造方法也不能被覆蓋。
注意4:方法覆蓋只是針對於“實例方法”,“靜態方法覆蓋”沒有意義。
3、關於Object類中toString()方法的覆蓋?
toString()方法存在的作用就是:將java對象轉換成字符串形式。
大多數的java類toString()方法都是需要覆蓋的。因為Object類中提供的toString()
方法輸出的是一個java對象的內存地址。
至於toString()方法具體怎么進行覆蓋?
格式可以自己定義,或者聽需求的。(聽項目要求的。)
4、方法重載和方法覆蓋有什么區別?
方法重載發生在同一個類當中。
方法覆蓋是發生在具有繼承關系的父子類之間。
方法重載是一個類中,方法名相同,參數列表不同。
方法覆蓋是具有繼承關系的父子類,並且重寫之后的方法必須和之前的方法一致:
方法名一致、參數列表一致、返回值類型一致。