以前覺得好難,現在回顧 忽然覺得好簡單啊 就這點東西
直接上代碼
package cn.xzc.hrms;
public class 多態學習 {
public static void main(String[] args) {
// 人類是人
People people= new People();
// 人類是動物
Animal animal_pe = new People();
// 豬是都動物
Animal animal_pi = new Pig();
// 豬是人類 語法錯誤 邏輯錯誤
// 人類是豬 語法錯誤 ;邏輯錯誤
// 動物是人類
// People people2= new Animal(); 語法錯誤
// 顯然 父類對象 接收子類對象的變量的地址 是多態
people.eat();
animal_pe.eat();
animal_pi.eat();
/*1.顯然父類變量調用的方法子類重寫了 是直接調用的子類方法
* 2.父類變量只能調用出父類方法中有的方法
* */
if(animal_pi instanceof Pig){
Pig pig=(Pig) animal_pi;
pig.sleeping();
};
/*
* 3.父類非要用子類的方法那就只能強轉了(大轉小) 向下造型
* */
/*
* 根據這個特徵顯然多態的存在的作用在於屏蔽了差異性
* 同一個父類的變量的eat方法 由於子類地址不同,實際調用的是子類各自的特定的差異方法
* 但是對父類而言 都是調用的eat方法,好用
* */
}
};
class Pig extends Animal{
String name ="pig";
public void eat(){
System.out.println("白菜");
}
public void sleeping(){
System.out.println("sleeping");
}
};
class People extends Animal{
String name ="people";
public void eat(){
System.out.println("蛋炒飯");
}
};
class Animal{
String basename ="animal";
public void eat(){
System.out.println("eating ");
}
}
溫故而知信 回顧一下面向對象 -----多態 最簡單易懂版
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.