多型:
簡單理解就是 父類變數 指向子類物件;
對介面來說: 1.定義介面 , 2.建立子類物件, 3.定義方法,並用介面型別變數做形式引數 , 4.呼叫方法.
對類來說 : 1.定義父類 , 2.建立子類物件, 3.定義方法,並用父類型別變數做形式引數 , 4.呼叫方法.
多型的好處:
提高了**的擴充套件性,前期定義的**可以使用後期內容.
多型的弊端:
前期定義的內容,不能呼叫後期子類的特有內容,也就是說:子類型別自動提公升為父類,導致子類特有功能無法父類無法訪問,如果要訪問,就要將物件向下轉型.
a instanceof b 關鍵字instanceof 用於判斷物件a是不是b型別的物件
什麼時候使用多型:
1,必須有關係,或者是實現,或者是繼承關係
2,要有覆蓋,只要這樣才能呼叫子類真正的功能
我們從乙個方法的格式: 修飾符 返回值型別 方法名 (引數列表)
public void show (int a)
來思考: 多型,覆蓋(重寫),過載,這些概念:
1. 在乙個類中,出現兩個以上的方法,它們的方法名相同,引數列表不同,方法體沒有明確關係. ------>導致出現了過載的概念;
2. 在子父類中,出現兩個方法宣告完全一樣的兩個方法, 方法體沒有明確關係.------>導致出現了 覆蓋(重寫)的概念;
3. 在同乙個類中,出現兩個以上的方法,它們的方法名相同,引數列表都只有乙個形式引數,並且型別不相同,方法體結構相同,方法體內的引數出了形式引數之外其他都完全一樣.簡言之,兩個方法除了形參不同,其他都完全一樣. ------>導致出現了多型的概念;
java之靜態總結 文本版
靜態的理解 1.類中被static修飾的成員被所有物件 例項 所共享,也就是說這個成員不屬於任何乙個物件 例項 而是屬於這個類 所以靜態變數又稱為類變數.2.類中的某個方法被static修飾與否,生命週期都是一樣的,但是如果這方法沒有訪問非靜態成員,則建議設定成靜態,這樣在呼叫時可以不用建立物件,節...
java之super,this總結 文本版
this 1.this存在於非靜態方法中,是對所在方法所屬物件的 位址 持有 2.this在構造方法中的第一行時,是對其他構造方法的 語法級別的 替代 例如 this 這就是在呼叫空參構造 super 1.super存在於子類非靜態方法中,是對所在方法所屬物件中父類空間的 位址 引用 ps 這個時候...
java之抽象的總結 文本版
問題 1,抽象類也是定義一些規則,為啥沒有被介面完全替代?答 介面 1,定義了一些規則 增強功能 乙個類實現多個介面 和多型 多個類實現乙個介面 抽象類 1.定義了一些規則 2.將一部分相同 進行了抽取,增加了復用性 3.將自身的功能給予了子類,相當於一種功能的積累 有些時候只需要定義規則 而有些時...