java基礎學習複習之路(八)---多態

多態

多態是java的一種特性。
那多態的直接寫法寫法是什麼呢?
父類指向子類

public class Fu{
    int a = 10;
    public void methodA(){};
};
public class Zi extends Fu{
	int a = 20;
	public void method(){};
	
	public void methodA(){};
};
//多態的一種體現
Fu obj = new Zi();

幾個注意:

1. 訪問成員變量是,看等號左邊是誰則用誰,沒有則向上找
    上例:輸出obj.a  ,結果爲10
2. 訪問方法則看實現對象是誰用誰,沒有則向上找
3. 編譯看左邊(父類),運行看右邊(子類)
   例:直接obj.method()  會報錯,則不能進行編譯運行
   因爲編譯的時候要看左邊及父類有沒有該方法
   當然上面的例子可以強制聲明爲成子類     ((Zi) obj).method();
   
   obj,methodA();則不會有問題,運行的時候要看右邊,所以運行的時候運行子類方法

instanceof

判斷一個對象能不能當作後面一個類的對象
也就是用來識別對象

例:

//動物父類
public class Animal(){}
//對象貓
public class Cat extends Animal(){}
//對象狗
public class Dog extends Animal(){}

//instanceof使用
Animal animal = new cat();
if(animal instanceof Cat){
   //執行cat
}
if(animal instanceof Dog){
   //執行Dog
}

//它一般是用來:當不知道animal是什麼對象的時候,又或者他可能是一個經過處理返回的對象類型時
//同時他們繼承同一個父類,擁有相同的方法,所以需要判斷鑑別類是實現大哥子類對象

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章