多型:在同乙個時刻體現不同的狀態,多型主要體現在向不同的物件傳送同乙個資訊,不同的物件在接受到資訊後產生不同的行為(方法),物件可以用自己的方法去響應共同的資訊。
多型性的表現:1.方法的過載與重寫 2.子類物件的多型性
使用的前提:1.要有繼承關係。2.要有方法的重寫
格式:person p=new man();//向上轉型
//虛擬方法呼叫:父類的引用 指向子類的例項物件,當呼叫方法時,實際上是子類重寫父類的方法
編譯時:認為p是person型別的,所以只能通過p訪問person擁有的屬性和行為,man特有的屬性和行為不能訪問。
反正一句話,訪問變數看宣告,訪問方法看實際物件型別(new出來的型別)
例子:
關於向下轉型
1.向下轉型,使用強轉符:()
2.為了不報classcastexception ,最好在向下轉型前進行判斷:instanceof
if(p instanceof woman)
2.關於方法
equals(object obj)
public boolean equals(objec obj)
當我們沒有重寫object類的tostring()方法時,列印的就是物件所在的類,以及物件實體在堆空間的位置
2.一般我們需要重寫object類的tostring()方法,將此物件的各個屬性值返回。
3.像string類、date、file類、包裝類都重寫了tostring()方法。
包裝類基本資料型別 包裝類
1.基本資料型別與對應的包裝類有自動裝箱、自動拆箱
如:int i = 10;
integer i1 = i;//自動裝箱
int j = i1;//自動拆箱
2.基本資料型別、包裝類---->string類:呼叫string類的過載的valueof(*** xx);
string類---->基本資料型別、包裝類:呼叫相應的包裝的par***xx(string str);
注意:string str = "123";
int i = (int)str;是錯誤的轉法。
JAVA SE 物件導向
封裝 繼承 多型 符合我們思想習慣的思想 複雜事情簡單化 執行者變成指揮者 事物 類 封裝 屬性,功能 屬性 成員變數 屬性 功能 成員方法 功能 例項化類 建立物件 leiming duixiangming new leiming 獲取屬性 duixiangming.shuxingming 呼叫方...
JavaSE 物件導向下
1.1.定義乙個father和child類,並進行測試。要求如下 1 father類為外部類,類中定義乙個私有的string型別的屬性name,name的值為 zhangjun 2 child類為father類的內部類,其中定義乙個introfather 方法,方法中呼叫father類的name屬性...
JAVASE 物件導向(二)
物件導向的特徵 封裝性,繼承性,多型性 封裝性 當建立了類以後,通過 物件.屬性 的方式對相應的屬性賦值的話,可能會出現不滿足實際情況的意外,我們考慮不讓物件直接作用屬性,而通過 物件.方法 的形式,來控制物件屬性的訪問。1.將屬性私有化 2.提供公共的set,get方法 許可權從大到小 publi...