abstract與interface之房祖名張默版


     最近把java基礎知識拿出來看看,看到abstract與interface的時候,覺得有點模糊,好像面試官也喜歡問這個問題。我在百度了查了好長時間,覺得講算比較清楚的是那篇講 Door,然后想要帶個報警的AlarmDoor,地址http://www.cnblogs.com/gxinliug/archive/2011/04/27/2031246.html,其他地方也能找到這邊篇文章,不知道是博主復制別人還是別人復制博主的。看了之后我還不是非常理解,我於是我就在stackoverflow上找了相關的帖子,其中感覺http://stackoverflow.com/questions/761194/interface-vs-abstract-class-general-oo 這個帖子里面的人回答得比較經典。

  • Pilot: abstract class
  • C-141 Pilot: concrete class
  • ISafety Officer: interface

    我然后仔細想想, 這個abstract類,比如有個抽象的人類,有頭發、眼睛、嘴巴等等這些屬性,有吃飯、喝水、說話這些方法,然后一個人任何的子類都具有這些屬性和方法,至於吃什么,喝什么和說什么就在於子類具體實現了。好了,現在某個人比如房祖名吧,有吸毒的技能(這里技能就當方法吧),成龍大哥是他的老子,但是他沒有吸毒這個嗜好啊。成龍的兒子就長得像成龍,有說話,吃飯的技能,房祖名吸毒的這個技能估計是從張默那個接口實現的,哥倆好啊。他說:吸毒我爸沒教我(不是你爸沒有教你,所有的爸爸都沒有教),就跟你學吧。想泡妞,但是成龍大哥又沒有泡妞技能傳授給他,怎么辦?然后又實現了柯震東泡吧泡妞的接口,於是泡了很多美女。 有天晚上:房祖名沉思了下來回顧了從小大的歷程:靠,我爸雖然是成龍,他就生了我,給我吃給我喝,其他啥技能都沒教我,我吸毒泡妞還是跟張默和柯震東學的。  

       綜上所說,成龍相當於一個抽象類吧,房祖名是一個子類,張默和柯震東就是兩個接口吧。他以后想去澳門賭博,得實現周潤發的接口啊。如果讓成龍教他賭博,豈不是打斷他的狗腿,這顯然不現實啊。  所以房祖名就一個成龍父類,可以有像張默和柯震東的很多這樣好基友的接口。

      以上純屬鄙人愚見,請各位斧正!

代碼就簡單寫下:

public abstract class Chenglong {

	public void eat() {

	}

	public void talk() {

	}
}

public interface Zhangmo {
	
	public void xidu();
}

public interface Kezhendong {
	public void paoniu();
}


public class Fangzuming extends Chenglong implements Zhangmo, Kezhendong {
	@Override
	 public void eat(){
		 
	 }
	@Override
	public void talk(){
		
	}

	@Override
	public void paoniu() {
		// TODO Auto-generated method stub
		
	}

	@Override
	public void xidu() {
		
		
	}

}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM