Java方法繼承、重載和覆蓋總結
Java 平臺是基於 Java 語言的平臺。這樣的平臺非常流行。因此微軟公司推出了與之競爭的平臺以及模仿Java的C#語言。下面文章介紹了Java方法繼承、重載、覆蓋總結:
1、方法繼承:
利用extends關鍵字一個方法繼承另一個方法,而且只能直接繼承一個類。
* 當Sub類和Base類在同一個包時Sub類繼承Base類中的public/protected/默認級別的變量個方法
* 在不同包時繼承public/protected級別的變量和方法。
2、方法重載:
如果有兩個方法的方法名相同,但參數不一致,哪麼可以說一個方法是另一個方法的重載。
* 方法名相同
* 方法的參數類型,個數順序至少有一項不同
* 方法的返回類型可以不相同
* 方法的修飾符可以不相同
* main方法也可以被重載
3、方法覆蓋:
如果在子類中定義一個方法,其名稱、返回類型及參數簽名正好與父類中某個方法的名稱、返回類型及參數簽名相匹配,那麼可以說,子類的方法覆蓋了父類的方法。
* 子類的方法名稱返回類型及參數簽名 必須與父類的一致
* 子類方法不能縮小父類方法的訪問權限
* 子類方法不能拋出比父類方法更多的異常
* 方法覆蓋只存在於子類和父類之間,同一個類中只能重載
* 父類的靜態方法不能被子類覆蓋爲非靜態方法
* 子類可以定義於父類的靜態方法同名的靜態方法,以便在子類中隱藏父類的靜態方法(滿足覆蓋約束), 而且Java虛擬機把靜態方法和所屬的類綁定,而把實例方法和所屬的實例綁定。
* 父類的非靜態方法不能被子類覆蓋爲靜態方法
* 父類的私有方法不能被子類覆蓋
* 父類的抽象方法可以被子類通過兩種途徑覆蓋(即實現和覆蓋)(P169)
* 父類的非抽象方法可以被覆蓋爲抽象方法
4、Super關鍵字:
super和this關鍵字都可以用來覆蓋Java語言的默認作用域,使被屏蔽的方法或變量變爲可見(三種情況下的不可見 P171)。
* 父類的成員變量和方法爲private使用super訪問編譯出錯
* 在類的構造方法種,通過super語句調用這個類的.父類的構造方法
* 在子類種訪問父類的被屏蔽的方法和屬性
* 只能在構造方法或實例方法內使用super關鍵字,而在靜態方法和靜態代碼塊內不能使用super
5、多態:
* 對於一個引用類型的變量,Java編譯器按照它的聲明的類型來處理
* 對於一個引用類型的變量,運行時Java虛擬機按照它的實際引用的對象來處理
* 運行時環境中,通過引用類型變量來訪問所引用對象的方法和屬性時,Java虛擬機採用以下綁定規則
1)實例方法與引用變量實際引用的對象的方法綁定,屬於動態綁定
2)靜態方法與引用變量所聲明的類型的方法綁定,屬於靜態綁定
3)成員變量(包括靜態和實例變量)與引用變量所聲明的類型的成員變量綁定,屬於靜態綁定
Java代碼
class Super {
static int stat = 1;
int nonStat = 2;
static int statMethod(){
return 3;
}
int nonStatMethod(){
return 4;
}
}
public class Sub extends Super {
static int stat = 10;
int nonStat = 20;
static int statMethod(){
return 30;
}
int nonStatMethod(){
return 40;
}
public static void main(String args) {
Super s = new Sub();
tln("Static is " + );
tln("Non-Static is " + tat);
tln("Static method is " + Method() );
tln("Non-Static method is " + tatMethod() );
Sub sub = (Sub)s;
tln("Static is " + );
tln("Non-Static is " + tat);
tln("Static method is " + Method() );
tln("Non-Static method is " + tatMethod() );
}
}
輸出結果:
Static is 1
Non-Static is 2
Static method is 3
Non-Static method is 40
Static is 10
Non-Static is 20
Static method is 30
Non-Static method is 40
相關文章
-
Java語言中方法重載與方法覆蓋的異同
導語:在Java語言的學習過程中,初學者經常分不清重載與覆蓋,實際上,方法重載(Overload)和方法覆蓋(Override,也叫重寫)都是Java多態性的體現,只是形式不同,在此,筆者簡單地談一談兩者的異同。 下面就由小編爲大家介紹一下Java -
用java重載的方法
1.夢見女同學,財運急速上升。也許將有鉅款收入。2.夢見女同學殺我,意味着獲得愛情。3.夢見女同學聊天,在愛情方面,運勢有好轉的傾向。這個時候,最好多看一些文藝作品,不要光看漫畫書。4.待考者夢見女同學,預兆考試成績差。5. -
Java重載使用方法
親手摺玫瑰,是送給親人、好友、藍紅顏、閨蜜最好的的禮物!快來學吧!只要仔細看圖就很簡單的!——zzz 2015.8.7主要材料:彩紙 1張所需工具:巧巧的手 一雙製作步驟:第1步:一張正方形紙,折出如圖摺痕,再折出右圖。第2步:看圖 -
Java重載的使用方法
重載能夠使具有相同名稱但不相同數目和類型參數的類傳遞給方法。下面是小編爲大家整理的Java重載的使用方法,歡迎參考~ Java重載的使用方法 名稱中包含的內容當將名稱分配到類、方法、變量時,使用能夠容易理解的 -
java中的方法重載與方法重寫
自己做最棒了主要材料:紫草浸泡油,荷荷巴油,甜杏仁油 134g棕櫚油,棕櫚核油 67g鹼 28g水 72g所需工具:燒杯 1溫度計 1攪拌棒 1模具 1保鮮膜 適量包裝盒 1製作步驟:第1步:材料我都配比好了,可以開始了!第2步 -
JAVA覆蓋率工具EMMA介紹
最近在對Java代碼進行單元測試的時候瞭解到一種針對Java代碼的強大的.覆蓋率工具Emma。那麼覆蓋率工具Emma是怎麼運行的呢?下面跟yjbys小編一起來看看吧!首先介紹一下EMMA 是一個開源、面向 Java 程序測試覆蓋率收集 -
JAVA覆蓋率工具EMMA詳細解析2016
EMMA 是一個開源、面向 Java 程序測試覆蓋率收集和報告工具。它通過對編譯後的 Java 字節碼文件進行插裝,在測試執行過程中收集覆蓋率信息,並通過支持多種報表格式對覆蓋率結果進行展示。那麼EMMA覆蓋率工具有什麼原理, -
在Mac上卸載Java的方法
引導語:Java編寫內容很廣,但也有程序員是使用不習慣的,以下是本站小編分享給大家的在Mac上卸載Java的方法,歡迎閱讀! 一、通過刪除 Java 插件文件卸載 Oracle Java注意:卸載 Oracle Java 涉及到刪除 Java 插件文件 in。要 -
java的繼承總結
在平日的學習、工作和生活裏,大家最不陌生的就是作文了吧,藉助作文人們可以實現文化交流的目的。那要怎麼寫好作文呢?下面是小編精心整理的那一次我真作文,供大家參考借鑑,希望可以幫助到有需要的朋友。那一次我真作文 篇1 -
JAVA認證開源技術:關於Java的對象equals方法
在學習JAVA認證過程中,每個人會遇到每個人不同的問題,或小或大,下面yjbys小編爲大家分享的是關於Java的對象equals方法,希望對大家學習JAVA有幫助!不是所有的equals都是比較整個對象的。 #1.普通Object類:先看源碼:publi