1、Object 類
Object類是類層次結構的根類,每個類都使用Object類作爲父類,所有對象(包括數組)都實現這個類的方法。
Object類中定義了很多方法,每個類既然是Object類的子類,那麼每個類都繼承了Object類中的方法。
例如,1、Object類中定義了一個equals()方法:
boolean equals.(Object obj) { 指示其它對象與此對象是否“相等” };返回值爲布爾類型。
2、Object類中還有個 toString()方法:
String toString() { 返回該對象的字符串表示 };
3、Object類中還有個getClass() 方法:
Class getClass() { 返回Object的運行時類 };可理解爲“反編譯”過程,把對象轉換成Class類。
4、而 Class 類中有個方法:
String getName() { 以String 的形式返回此Class 對象所表示的實體(類、接口、數組類、基本類型或 void)名稱。 }
代碼示例:
class ObjectDemo {
public static void main(String[] args){
Demo d1 = new Demo();
Demo d2 = new Demo();
System.out.println(d1.equals(d2)); //判斷d1和d2是不是一個對象
System.out.println(d1.toString()); //把d1這個對象以字符串形式輸出,“類名+@+對象哈希值”
Class c = d1.getClass(); //把d1這個對象轉成運行時類文件
System.out.println(c.getName()); //輸出這個類文件的文件名
}
}
class Demo { //extends Object,默認繼承Object類
}
編譯運行結果:
2、多態
2.1 多態的定義
2.2 多態的體現
class Animal {
public void eat(){
System.out.println("動物");
}
public void cc() {
System.out.println("CC");
}
}
class Cat extends Animal {
public void eat() {
System.out.println("吃魚");
}
public void catchmouse() {
System.out.println("抓老鼠");
}
}
class Dog extends Animal {
public void eat() {
System.out.println("吃骨頭");
}
public void kanjia() {
System.out.println("看家");
}
}
class DuoTaiDemo{
public static void main(String[] args){
Animal c = new Cat(); //父類引用指向子類對象,即多態
c.eat();
c.cc();
}
}
編譯運行結果:
2.3 多態的前提
2.4 多態的好處
2.5 多態的弊端
所以多態的出現,一致都是子類在來回轉換角色,
向上轉型父類引用指向子類對象,或者向下轉型,訪問子類特有的內容