(白話通俗講解)Java實現接口的類的對象賦值給接口的理解

原創博客,轉載請註明出處。java

相信小夥伴們都知道面向接口編程的好處,這裏我再也不敘述。重點是怎麼理解這種困擾新手的方式。編程嘛,確定是爲了解決實際問題,若是不能很好的和生活中的事例相結合,單純炫技把代碼弄得很複雜,我是不推薦的。編程

廢話很少說,先來看一段代碼:ide

public interface JustInterface {

	void justMethod(Object object);
	
}

public class JustInterface Impl implements JustInterface{

	@Override
	public void justMethod(Object object) {
		// TODO Auto-generated method stub
		do something…
	}

}

// 在Main.class裏能夠這樣聲明和初始化:
public static void main( String[] args ) {

	JustInterface justInterface = new JustInterfaceImpl();
	justInterface.justMethod;

}
複製代碼

對於這段挺正經的面向接口編程的代碼,包括我本身,也一直處於似懂非懂的狀態,可是具體爲何會出現這種方式,我必定要想清楚纔會安心。函數

接下來請容許我用一個很俗的例子來講明這種方式。spa

故事是這樣的,雙手受傷的獨居宅男,想吃放在面前飯桌上的青椒炒牛肉。(別問爲何,宅男就是要吃青椒炒牛肉,也別問哪來的青椒炒牛肉,繼續看就好了),咱們須要一種方法,最好是人機接口,能夠幫助這位宅男不用手輕鬆吃到青椒炒牛肉。code

市面上有一種機械臂,他對外提供了一我的機接口。而接口裏面有一個方法,這個方法聽起來很符合宅男的要求:夾起機械臂面前的物體-移動到指定座標點-而後鬆開。看來只須要把這個機械臂放在飯桌上就好了。接口

因而雙手受傷的獨居宅男買了一個機械臂(怎麼買的,你不用知道),想經過這個機械臂來吃青椒炒牛肉。整個歡喜的過程以下:遊戲

// 在機械臂公司裏的組裝線是這樣的:
public interface 人機接口 {
	
	void 傳遞物體(宅男嘴裏的位置);	

} 

public class 機械臂 implements 人機接口 {

	@Override
	public void 傳遞物體(宅男嘴裏的位置) {
		夾起機械臂面前的物體;
		移動到 宅男嘴裏的位置;
		鬆開物體;
	}
}

// 在宅男家裏:
main 函數 {
	人機接口 = new 機械臂;  //宅男準備開始使用帶有人機接口的實現了傳遞物體方法的機械臂
	機械臂.傳遞物體(宅男嘴裏的位置); //機械臂夾起了放在面前的青椒炒牛肉,移動到宅男嘴裏的位置,而後鬆開了青椒炒牛肉。
}
複製代碼

對比一下文章開頭給出的代碼:博客

public interface JustInterface {

	void justMethod(Object object);
	
}

public class JustInterface Impl implements JustInterface{

	@Override
	public void justMethod(Object object) {
		// TODO Auto-generated method stub
		do something…
	}

}

// 在Main.class裏能夠這樣聲明和初始化:

public static void main( String[] args ) {
	JustInterface justInterface = new JustInterfaceImpl();

	justInterface.justMethod;
}
複製代碼

怎麼樣,這樣的通俗事例對於理解是否是簡單多了?和實際結合起來解決問題,我以爲是編程的首要核心。 至於宅男爲何不把頭埋下去用嘴直接吃青椒炒牛肉呢?多是長期玩遊戲,脖子僵硬吧。it

後記:宅男在機械臂的包裝盒子裏發現了一份迷之說明書,在說明上發現瞭如何設置機械臂的動做,因而邪惡的思想涌入了宅男的大腦。。。

相關文章
相關標籤/搜索