小編給大家分享一下Java面向對象之多態的用法示例,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
/**
題目: (孩子,學生) 吃 水果(蘋果,葡萄,芒果,菠蘿)
思路:
1. 抽象出類 : {孩子(Baby),學生(Student)}, 水果(Fruit){蘋果(Apple),葡萄(Grape),芒果(Mango)}
2. 找出類的關系:
水果 -> (孩子,學生)
(蘋果,葡萄,芒果) 是 水果的分類
3. 找出屬性: 孩子,學生(姓名,水果引用)
4. 找出方法: 孩子,學生都吃(eat)水果
子類->父類的轉換 作用 :解耦 也就是降低類與類之間的耦合度 提供可擴展性
*/public class Polymorphism4 {
public static void main(String[] args) { //實例化一個Baby
Baby baby = new Baby("李明"); //實例化一個學生
Student stu = new Student("張濤"); //實例化一個蘋果 和 一個葡萄
Apple apple = new Apple("紅富士");
Grape grape = new Grape("黑葡萄");
Mango mango = new Mango("大芒果");
PineApple pineApple = new PineApple("菠蘿"); //李明吃水果
baby.eat(apple);
System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName());
baby.eat(grape);
System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName());
baby.eat(mango);
System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName());
baby.eat(pineApple);
System.out.println(baby.getName() + " 吃了 " + baby.getFruit().getName()); //張濤吃水果
stu.eat(apple);
System.out.println(stu.getName() + " 吃了 " + stu.getFruit().getName());
stu.eat(grape);
System.out.println(stu.getName() + " 吃了 " + stu.getFruit().getName());
stu.eat(mango);
System.out.println(stu.getName() + " 吃了 " + stu.getFruit().getName());
stu.eat(pineApple);
System.out.println(stu.getName() + " 吃了 " + stu.getFruit().getName());
}
}class Baby {
private Fruit fruit; private String name; public Baby(String name) { this.name = name;
} public String getName() { return this.name;
} public Fruit getFruit() { return this.fruit;
} //吃水果
public void eat(Fruit fruit) { this.fruit = fruit;
}
}class Student {
private Fruit fruit; private String name; public Student(String name) { this.name = name;
} public String getName() { return this.name;
} public Fruit getFruit() { return this.fruit;
} //吃水果
public void eat(Fruit fruit) { this.fruit = fruit;
}
}class Fruit {
private String name; public Fruit(String name) { this.name = name;
} public String getName() { return this.name;
}
}class PineApple extends Fruit {
public PineApple(String name) { super(name);
}
}class Apple extends Fruit {
public Apple(String name) { super(name);
}
}class Grape extends Fruit {
public Grape(String name) { super(name);
}
}class Mango extends Fruit {
public Mango(String name) { super(name);
}
}以上是“Java面向對象之多態的用法示例”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。