物件導向 重寫 Final

2021-10-08 17:55:00 字數 1274 閱讀 9390

1:存在父子關係,方法

2:只有當父類的方法滿足不了子類的需求,才會重寫

1:私有方法不能重寫: 可以重新出現,但是不是重寫(新增)

2:靜態方法不是重寫:可以重新出現,但是不是重寫(新增)

3:final修飾的方法不能重寫: 在子類中就不能再出現

使用==進行比較
使用equals方法進行比較
效率比equals高 ,一般先比較hashcode再用equals方法
override 重寫存在的條件:繼承, 父類方法不能滿足子類需求的時候,按需重寫,方         法頭保持一致

overload 過載:同乙個類,方法名相同,引數列表

1:父類引用指向子類物件 向上轉型(upcasting)自動的
​ 只能呼叫父類的方法,子類新增的看不到

2:子類引用指向父類"物件"向下轉型(downcasting)  強轉
目標型別 引用名 = (目標型別) 資料;

​ 能夠呼叫父類和子類的所有方法,但是可能出錯

子類->父類:提供程式的靈活性   -> 無論多少個子類,原來處理父類的**都可以勝任 (自動轉)

父類-> 子類:為了使用子類新增的方法 -> 新增的方法,就是子類的特性 (強轉)

型別要轉換,必須在同一條繼承鏈上。不在同一條繼承鏈上,是不能發生轉換的,強制也不行。
同一條繼承鏈上轉換的規則:(上|父類)(下|子類) 向上自動的**完之後,會丟失掉子類的新增內容); 向下強轉(雖然能夠訪問新增的內容,但是有危險)通過 instanceof 來驗證

1:繼承

2:重寫

3:父類引用子類物件(父類呼叫子類方法)

編譯:決定你能夠呼叫什麼樣的方法,引用的型別,在繼承鏈中,從當前引用的型別出發,開始往上找,如果能找到,表示可以呼叫,如果從頭到尾沒找到, 不能呼叫

執行:執行決定執行哪乙個方法,物件的型別,從當前的物件出發,向上找,一旦找到則執行

編譯看左邊,執行看右邊

變數:變數變為最終變數(常量)只有一次賦值機會

方法:方法不能重寫,而且不能出現

類:表示這個類不能再被繼承

物件導向 重寫(override)

子父類中成員函式的特點。特殊情況 子父類中定義了一模一樣的函式 執行的結果是 子類的函式在執行。這種情況在子父類中,是函式的另乙個特性 override 重寫,覆蓋,複寫 重寫什麼時候用?舉例 描述手機。class phone phone p new phone p.show 隨著 的公升級,希望顯...

PHP 物件導向 final類與final方法

如果我們不希望乙個類被繼承,我們使用final來修飾這個類。final可以用於類 方法前,則類不可以被繼承,方法不可以被過載。比如我們設定的math類,涉及了我們要做的數學計算方法,這些演算法也沒有必要修改,也沒有必要被繼承,我們把它設定成final型別。如下 宣告乙個final類math fina...

PHP 物件導向 final類與final方法

final 用於類 方法前。final類 不可被繼承。final方法 不可被覆蓋。如果我們不希望乙個類被繼承,我們使用final來修飾這個類。這個類將無法被繼承。比如我們設定的math類,涉及了我們要做的數學計算方法,這些演算法也沒有必要修改,也沒有必要被繼承,我們把它設定成final型別。1 宣告...