DAY08 復習
1.繼承中變數的使用
如果父類的成員變數與子類的成員變數同名時,使用super.變數名指定父類的成員變數
2.繼承中構造方法的使用
- 我們每次創建物件的時候,都會先觸發建構式
- 創建子類物件時,會先呼叫父類的無參構造,因為子類的建構式中默認存在一個super();
- 如果父類沒有無參構造的話,我們就需要手動指定子類去呼叫父類的含參構造super(引數);
- 構造方法不可以被繼承,原因是:構造方法名必須是本類的類名,不可能在子類中存在一個父類名字的構造方法
3.方法的重寫
重寫:子類對父類的方法不滿意時,可以重寫父類的方法
注意:重寫是在不改變父類方法的前提下,實作功能的修改與拓展,重寫后子類物件呼叫的就是重寫后的功能
重寫的語法規則:兩同 兩小 一大
- 一大:子類方法的修飾符權限 >= 父類方法的修飾符權限
- 兩同:方法名相同,引數串列相同
- 兩小:子類方法的回傳值型別 <= 父類方法的回傳值型別
子類方法拋出的例外型別 <= 父類方法拋出的例外型別【這個還沒學,不用管】 - 注意1:如果父類方法的回傳值型別為void,那子類方法的回傳值型別也是void
- 注意2:我們這里說的回傳值型別的大小,不是值的大小,而是繼承關系,比如:
父:int 子:int 可以
父:int 子:long 不可以,因為這兩者沒有繼承關系
父:Animal 子:Animal/Cat/Dog… 可以
父:Animal 子:Car 不可以,小動物與小汽車也沒有繼承關系
- 我們還可以給方法上加@Override注解,標記這是一個重寫的方法
4 方法的多載
- 定義:如果在同一個類中,存在多個同名方法,但引數串列不同的現象
- 作用:多載使我們的代碼更靈活,傳入不同的引數,都可以有對應的方法被呼叫
- == 方法是否構成多載,與方法引數的型別有關,與方法引數的名字無關==
前提:同一個類中,同名的方法
1.方法的引數個數不同:一定構成多載
2.方法的引數個數相同:就需要查看對應位置上引數的型別
5.重寫與多載的比較:
- 多載:在一個類中的現象:同一個類中,存在方法名相同,引數串列不同的方法
- 重寫:是指建立了繼承關系以后,子類對父類的方法不滿意,可以重寫,遵循兩同兩小一大原則
- 多載的意義:是為了外界呼叫方法時方便,不管傳入什么樣的引數,都可以匹配到對應的同名方法
- 重寫的意義:在不修改原始碼的情況下,進行功能的修改與拓展(OCP原則:面向修改關閉,面向拓展開放)
6. this與super
- this代表的是本類物件的參考,我們可以把this看作是Cat this = new Cat();
super代表的是父類物件的參考,我們可以把super看作是Father super = new Father(); - 當本類的成員變數與區域變數同名時,需要使用this.變數名指定本類的成員變數
當本類的成員變數與父類的成員變數同名時,需要使用super.變數名指定父類的成員變數 - this可以實作呼叫本類構造方法的功能,不能互相呼叫,需要寫在構造方法首行
this();表示呼叫本類的無參構造 this(引數);表示呼叫本類的對應引數的構造
super也可以實作呼叫父類構造方法的功能
super();表示呼叫父類的無參構造 super(引數);表示呼叫父類的對應引數的構造 - 注意:super的使用前提是繼承,沒有父子類關系,就沒有super
- 注意:this呼叫構造方法或者super呼叫構造方法,都必須出現在構造方法的第一行
- 注意:如果父類沒有無參構造,需要手動在子類構造方法的第一行呼叫其他的含參構造
- 拓展:如果子類重寫了父類的方法以后,可以使用super.方法名(引數串列)來呼叫
7. 關鍵字final
- final表示最終
- 被final修飾的類是最終類,不可以被繼承
- 被final修飾的方法是這個方法的最終實作,不可以被重寫
- 被final修飾的是常量,值不可以被修改,而且常量定義時必須賦值
8.關鍵字static
- 被static修飾的資源統稱為靜態資源,可以修飾變數、方法、代碼塊
- 靜態資源屬于類資源,隨著類的加載而加載,優先于物件進行加載
- 所以靜態資源可以被類名直接呼叫,不創建物件也可以
- 靜態資源被全域所有的物件共享
- 靜態只能呼叫靜態
9.靜態代碼塊
- 格式:static{ }
- 位置:類里方法外
- 執行時機:隨著類的加載而加載,優先于物件進行加載【只加載一次】
- 作用:用于加載那些需要第一時間就加載,并且只加載一次的資源,常用來初始化
- 順序:靜態代碼塊 構造代碼塊 構造方法 普通方法【如果普通方法里有區域代碼塊,執行區域代碼塊】
TIPS: 如果有多個靜態資源,加載順序取決于先后位置
TIPS: 靜態不可以與this和super共用
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/299056.html
標籤:其他
上一篇:計算機視覺 | 面試題:07、Pooling層的作用以及如何進行反向傳播
下一篇:Java獲取真實Ip地址
