日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java--面向接口编程

發布時間:2024/4/17 编程问答 21 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java--面向接口编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前看的一本書的筆記,上周再看設計模式的時候,想到了這篇之前在看某本書時候的筆記。

面向接口編程很重要的一點就是接口回調,用接口聲明的變量稱作接口變量,屬于引用型變量,可以存放實現該接口的類的實例的引用,對象引用。

接口回調:可以把實現某一接口的類創建的對象的引用賦值給該接口聲明的接口變量,那么該接口變量就可以調用被類實現的接口方法。

Com com; ? ? ?//接口

ImplCom object; ? ?//實現接口的對象

com = object; ? ? ? ?//接口回調,com會根據對象的不同而實現不同的接口方法,回調類重寫的接口方法

? ? ? 接口和abstract類的比較如下:

? ? ?abstract類和接口都可以有abstract方法。

? ? ?接口中只可以有常量,不能有變量;而abstract類中既可以有常量也可以有變量。

? ? ?abstract類中也可以有非abstract方法,接口不可以。

? ? ?在設計程序時應當根據具體的分析來確定是使用抽象類還是接口。abstract類除了提供重要的需要重寫的abstract方法外,也提供了子類可以繼承的變量和非abstract方法。如果某個重要問題需要使用繼承才能更好地解決,比如,子類需要重寫父類的abstract方法,還需要從父類繼承一些變量或繼承一些重要的非abstract方法,就可以考慮用abstract類。如果某個問題不需要繼承,只是需要若干個類給出某些重要的abstract方法的實現細節,就可以考慮使用接口。

? ? ? ?使用接口編程的最重要的核心思想就是使用接口回調,及接口變量存放實現該接口的類的對象的引用,從而接口變量就可以回調類實現的接口方法。

?

?

1 2 3 4 public?interface?Advertisement { ????public?void?showAdvertisement(); ????public?String getCorpName(); }

2、設計AdvertisementBoard類(廣告牌),該類有一個show(Advertisement adver)方法,該方法的參數是接口Advertisement的類型,顯然該參數adver可以存放任何實現Advertisement接口的類的對象的引用,并回調類重寫的接口方法showAdvertisement()來顯示公司的廣告詞,回調類重寫的接口方法getCorpName來獲取公司名稱。

1 2 3 4 5 6 public?class?AdvertisementBoard{ ????public?void?show (Advertisement adver){ ????????System.out.println(adver.getCorpName()+"廣告詞"); ????????adver.showAdvertisement();?//接口回調 ????} }

實現接口的A公司類:

1 2 3 4 5 6 7 8 public?class?Acorp implement Advertisement { ????public?void?showAdvertisement(){ ????????System.out.println("AAAAAAAAAAAAAAAAA"); ????} ????public?String getCorpName(){ ????????return?"A Corp"; ????} }

實現接口的B公司類:

1 2 3 4 5 6 7 8 public?class?Bcorp implement Advertisement { ????public?void?showAdvertisement(){ ????????System.out.println("BBBBBBBBBBBBBBBBB"); ????} ????public?String getCorpName(){ ????????return?"B Corp"; ????} }

運行住程序:

1 2 3 4 5 6 7 public?class?test (){ ????public?state?void?main (string args[]){ ????????AdvertisementBoard board =?new?AdvertisementBoard(); ????????board.show(new?Acorp()); ????????board.show(new?Bcorp()); ????} }

最后程序會根據對象的不同調用不同的方法。若想要添加C公司,只要實現接口的方法就可以了。

轉載于:https://www.cnblogs.com/silence-hust/p/4147403.html

總結

以上是生活随笔為你收集整理的java--面向接口编程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。