1. 程式人生 > >多型成員的訪問特點

多型成員的訪問特點

多型成員的訪問特點

/*
	多型:同一個物件(事物),在不同時刻體現出來的不同狀態。
	舉例:
		貓是貓,貓是動物。
		水(液體,固體,氣態)。
		
	多型的前提:
		A:要有繼承關係。
		B:要有方法重寫。
			其實沒有也是可以的,但是如果沒有這個就沒有意義。
				動物 d = new 貓();
				d.show();
				動物 d = new 狗();
				d.show();
		C:要有父類引用指向子類物件。
			父 f =  new 子();
			
	用程式碼體現一下多型。
	
	多型中的成員訪問特點:
		A:成員變數
			編譯看左邊,執行看左邊。
		B:構造方法
			建立子類物件的時候,訪問父類的構造方法,對父類的資料進行初始化。
		C:成員方法
			編譯看左邊,執行看右邊。
		D:靜態方法
			編譯看左邊,執行看左邊。
			(靜態和類相關,算不上重寫,所以,訪問還是左邊的)
			
		由於成員方法存在方法重寫,所以它執行看右邊。
*/
class Fu {
	public int num = 100;

	public void show() {
		System.out.println("show Fu");
	}
	
	public static void function() {
		System.out.println("function Fu");
	}
}

class Zi extends Fu {
	public int num = 1000;
	public int num2 = 200;

	public void show() {
		System.out.println("show Zi");
	}
	
	public void method() {
		System.out.println("method zi");
	}
	
	public static void function() {
		System.out.println("function Zi");
	}
}

class DuoTaiDemo {
	public static void main(String[] args) {
		//要有父類引用指向子類物件。
		//父 f =  new 子();
		Fu f = new Zi();
		System.out.println(f.num);
		//找不到符號
		//System.out.println(f.num2);
		
		f.show();
		//找不到符號
		//f.method();
		f.function();
	}
}