黑馬程序員 多態入門

---------------------- android培訓java培訓、期待與您交流! ----------------------

多態:事物存在多種體現形態
好處:提高程序的擴展性
弊端:因爲使用了父類引用,所以只能訪問父類成員,不能訪問子類特有的成員
使用前提:有繼承關係或實現關係的類

abstract class Animal
{
	abstract public void eat();   //到具體動物裏再實例化
}

class Cat extends Animal     //除了Cat還可以定義各種具體的動物
{
	public void eat()           //實例化eat方法
	{
		System.out.println("貓吃");
	}
	public void catchMouse()           //特有的catchMouse方法
	{
		System.out.println("抓老鼠");
	}
}


class DuotaiTest
{
	public static void main(String[] args) 
	{
		Animal x=new Cat();    //自動向上轉型,無論new出什麼具體動物都提升到Animal類型
		x.eat();    
		function(new Cat());         //和上一句執行的結果一樣,都對一個新Cat使用eat方法
		

	}
	public static void function(Animal a)    //不論傳進來的a是哪種具體動物,都已經提升到Animal了
	{
		a.eat();                   //這個具體子類裏的方法已經重寫,不同的動物進來執行不同的eat方法
		                    //不能寫a.catchMouse();,因爲這裏a的引用是Animal類型,父類裏沒有catchMouse方法
		Cat b=(Cat)a;     //只能這樣把a的引用向下轉換成Cat類型,再使用catchMouse方法
		b.catchMouse();
	}
}


--------------------- ASP.Net+Android+IOS開發.Net培訓、期待與您交流! ----------------------
發佈了45 篇原創文章 · 獲贊 4 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章