instanceof:
有了物件的多型性以後,記憶體中實際載入了子類持有的屬性和方法,
但由於變數宣告為父類型別,導致編譯時只能呼叫父類的屬性和方法。子類持有的屬性和方法不能呼叫。
要想呼叫,需要使用向下轉型:使用強制型別轉換符
person p1 = new man();//person型別
man m1 = (man)p1;//型別轉換
但是:woman m2 = (woman) m1;//失敗
a instanceof a:判斷物件a是否是類a的例項。如果是,返回true,不是返回false
由於型別轉換時可能會出現異常,所以利用instanceof在轉換前進行判斷,true則進行轉換,反之不轉換
如果a instanceof a返回true b是a的父類 則a instanceof b也返回true。
== 運算子
1.用於基本資料型別的數值比較
2.用於引用資料變數的位址值比較(是否指向同乙個堆空間中的實體)
equals:
object類中equals的定義
public boolean equals(object obj)
像string,file,包裝類等,都重寫了equals()方法
重寫以後,比較的是內容而不是位址。
重寫規則:比較內容是否相同
public boolean equals(object obj)
if(this instanceof obj)
return false;
}多型性測試**
public class text
}class base
}class sub extends base
}
暑假自學(52)
今日完成題目 定義乙個學生類,設計私有資料成員 年齡int 姓名字串名稱 共有成員函式 帶引數的初始化函式 input int a,string str 獲取資料成員函式 output 在主函式中定義乙個有3 個元素的物件陣列 並分別輸入,然後輸出物件陣列的資訊。先定義乙個點類,類稱為 點,將其座標...
暑假自學(40)
今天繼續了異常處理的學習 難點還是在於沒有實踐,而且這種異常處理也不能改正錯誤,還是需要人工改 只能起到給使用者乙個提示的作用 以下是筆記 2.throws 格式 throws 異常型別 1.寫在方法的宣告處。指明此方法執行時,可能會丟擲的異常型別 一旦當方法執行時,出現異常,仍會在異常 處生成乙個...
暑假自學(35)
今日完成題目 定義乙個dog 類,包含了age,weight 等屬性,以及對這些屬性操作的方法,實現並測試這個類。設計並測試乙個名為rectangle的矩形類,其屬性為矩形的左下角與右上角兩個點的座標,根據座標能計算矩形的面積。設計乙個用於人事管理的 人員 類。由於考慮到通用性,這裡只抽象出所有型別...