Java之------【抽象與繼承】

    忙碌的一天又結束了,大部分同事們都回家了,僅有的幾個同事任然在奮戰中!

以前有聽說過下班了不願意回家的這回事,我是死活不相信,但是我現在相信了,我也在做同樣的事情。至於爲什麼,也許你有一天會明白,也許你不需要明白!

利用這點時間總結下今天下午學到的一點關於java的面向對象的一個特點的分享:

大家都對面向對象的三大特點倒背如流,但是你明白他們的具體的實現嗎,反正我學了這麼久,概念還是那麼的模糊,下面我就把關於java中的一個抽象的概念跟大家共同學習下:

抽象:

抽象==》模糊(就是你搞不清楚他具體是什麼,只知道一個宏觀的概念)

例如:奧迪A8L與寶馬X5都是汽車,但是他們的引擎不一樣,但是作爲一輛汽車,必須要有引擎,具體什麼樣的車型有什麼樣的引擎,我們不關心,那是他自己的事。所以我們可以把汽車的引擎抽象出來,具體的實現就需要他們自己去完成。下面我給大家一個關於抽象的例子:一個公司有兩種類型惡職工,一個是程序員,一個是管理者。程序員的屬性有:姓名,工號,薪酬,行爲:寫代碼;管理者:姓名,工號,薪酬,獎金;行爲:管理程序員。

實現:

package testPkg2;
//抽象類定義
public abstract class Man {
	String name;
	String number;
	int pay;
	Man(){
		
	}
	Man(String name,String number,int pay){
		this.name=name;
		this.number=number;
		this.pay=pay;
	}
	abstract void work();
}

package testPkg2;
//實現抽象類
public class programer extends Man{
	programer(String name,String number,int pay){
		super(name,number,pay);
	}	
	void work(){
		System.out.println("my work is write code...");
	}
}

package testPkg2;
實現抽象類
public class Manager extends Man{
	int bound;
	Manager(){
		
	}
	Manager(String name,String number,int pay,int bound){
		super(name,number,pay);
		this.bound=bound;
	}
	void work()
	{
		System.out.println("My work is manage our employee");
	}
}


public class Main {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		programer p=new programer("s","s",100);
		p.work();
		Manager m=new Manager();
		m.work();
	}

}

輸出結果:
my work is write code...
My work is manage our employee

        從上面的例子我們可以看出,兩中類型的職工,他們都有工作的行爲,但是他們的具體內容不同。我們這裏採用了抽象類去實現,是不是會覺得清晰一些,看上去不是那麼的亂。這樣也保證了程序的健壯性,這樣以後公司突然多了一種類型的員工,我們就不需要單獨爲他寫行爲的方法,我們只需繼承抽象類就可以了!以上就是小弟最近的一點學習心得。望各路神仙多多指教!


個人感悟:有時候你被生活狠狠的抽了一巴掌,但是你依然得微笑面對,因爲你除了這樣再找不到更好的辦法來面對這一切!!、


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