(白話通俗講解)Java實(shí)現(xiàn)接口的類的對(duì)象賦值給接口的理解

原創(chuàng)博客,轉(zhuǎn)載請(qǐng)注明出處。

相信小伙伴們都知道面向接口編程的好處,這里我不再敘述。重點(diǎn)是怎么理解這種困擾新手的方式。編程嘛,肯定是為了解決實(shí)際問題,如果不能很好的和生活中的事例相結(jié)合,單純炫技把代碼弄得很復(fù)雜,我是不推薦的。

廢話不多說,先來看一段代碼:

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;

}

對(duì)于這段挺正經(jīng)的面向接口編程的代碼,包括我自己,也一直處于似懂非懂的狀態(tài),但是具體為什么會(huì)出現(xiàn)這種方式,我一定要想清楚才會(huì)安心。

接下來請(qǐng)?jiān)试S我用一個(gè)很俗的例子來說明這種方式。

故事是這樣的,雙手受傷的獨(dú)居宅男,想吃放在面前飯桌上的青椒炒牛肉。(別問為什么,宅男就是要吃青椒炒牛肉,也別問哪來的青椒炒牛肉,繼續(xù)看就行了),我們需要一種方法,最好是人機(jī)接口,可以幫助這位宅男不用手輕松吃到青椒炒牛肉。市面上有一種機(jī)械臂,他對(duì)外提供了一個(gè)人機(jī)接口。而接口里面有一個(gè)方法,這個(gè)方法聽起來很符合宅男的要求:夾起機(jī)械臂面前的物體-移動(dòng)到指定坐標(biāo)點(diǎn)-然后松開??磥碇恍枰堰@個(gè)機(jī)械臂放在飯桌上就行了。于是雙手受傷的獨(dú)居宅男買了一個(gè)機(jī)械臂(怎么買的,你不用知道),想通過這個(gè)機(jī)械臂來吃青椒炒牛肉。整個(gè)歡喜的過程如下:

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

} 

public class 機(jī)械臂 implements 人機(jī)接口 {

    @Override
    public void 傳遞物體(宅男嘴里的位置) {
        夾起機(jī)械臂面前的物體;
        移動(dòng)到 宅男嘴里的位置;
        松開物體;
    }
}

// 在宅男家里:
main 函數(shù) {
    人機(jī)接口 = new 機(jī)械臂;  //宅男準(zhǔn)備開始使用帶有人機(jī)接口的實(shí)現(xiàn)了傳遞物體方法的機(jī)械臂
    機(jī)械臂.傳遞物體(宅男嘴里的位置); //機(jī)械臂夾起了放在面前的青椒炒牛肉,移動(dòng)到宅男嘴里的位置,然后松開了青椒炒牛肉。
}

對(duì)比一下文章開頭給出的代碼:

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;
}

怎么樣,這樣的通俗事例對(duì)于理解是不是簡(jiǎn)單多了?和實(shí)際結(jié)合起來解決問題,我覺得是編程的首要核心。
至于宅男為什么不把頭埋下去用嘴直接吃青椒炒牛肉呢?可能是長(zhǎng)期玩游戲,脖子僵硬吧。

后記:宅男在機(jī)械臂的包裝盒子里發(fā)現(xiàn)了一份迷之說明書,在說明上發(fā)現(xiàn)了如何設(shè)置機(jī)械臂的動(dòng)作,于是邪惡的思想涌入了宅男的大腦。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容