特點
- 對象的多態(tài)性: 分家導致的財產(chǎn)糾紛
- 方法 的多態(tài)性:雙重事件
// 素食
interface Vegetarian{
}
class Bird{
}
class Animal{
public void run(){
System.out.println("Animal----Run is nature");
}
public void eat(){
System.out.println("Animal----eat is nature");
}
public void eat(String str){
System.out.println("Animal----eat is nature");
}
// public String toString(){
// return "fds";
// }
}
public class Deer extends Animal implements Vegetarian{
String name;
public void run(){
System.out.println("Deer----Run is nature");
}
public void sleep(){
System.out.println("Deer----sleep is nature");
}
public String toString(){
return name + " is a deer";
}
public static void main(String[] args) {
/*
向上轉(類)型
多態(tài)性是指對象能夠有多種形態(tài)。(主要體現(xiàn)在 1.方法的重載和重寫 2. 對象的多態(tài)性)
在 OOP 中最常用的多態(tài)性發(fā)生在當父類引用指向孩子類對象時。
*/
Deer d = new Deer();
//父類引用指向孩子類對象
Animal a = d;
a.run();// Deer----Run is nature
Vegetarian v = d;
Object o = d;
/*
現(xiàn)在 Deer 類是多態(tài)的,因為他有多個繼承機制。針對上面的例子有以下說法:
Deer 就是 Animal
Deer 就是 Vegetarian
Deer 就是 Deer
Deer 就是 Object
*/
// 所有的引用變量 d, a, v, o 引用同一個對象 Deer。
System.out.println(d instanceof Deer);
System.out.println(a instanceof Deer);
System.out.println(v instanceof Deer);
System.out.println(o instanceof Deer);
/*
對象的多態(tài)性
向上轉(類)型:程序會自動完成
父類 父類對象 = 子類實例 (該父類對象只能調用父子交集的部分)
*/
Animal animal = new Deer();
animal.run(); // 方法重寫
animal.eat();
// animal.sleep();// 不能被調用
System.out.println("-----------------------");
// 向下轉型: 強制類型轉換(一定先發(fā)生向上轉型 才能發(fā)生向下轉型)
// 子類 子類對象 = (子類)父類實例
// Animal ani = new Animal(); //ClassCastException 類型轉換異常
Animal ani = new Deer();
Deer deer = (Deer)ani;
deer.run();
deer.eat();// 父類自己方法
deer.sleep(); // 子類自己的方法
deer.name = "dr";
System.out.println(deer);
}
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。