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 宣告...