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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

面向对象之接口——

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

閱讀指南

        • 前言
        • 接口
          • 接口的多態性
          • 抽象類和接口的異同
          • 接口的作用
          • 面向接口編程
        • 結語

前言

本篇我們介紹接口、接口的多態性以及接口的作用,然后淺淺提一下接口和抽象類的異同,最后我們介紹面向接口編程的思維。

接口

從程序設計的角度來說,接口是相關項目的不同軟件開發組開發的軟件之間相互交互的協議。比如在圖形軟件開發中,圖像處理公司為圖形軟件開發公司提供數字圖像處理方法,為協調兩個公司之間的軟件開發需要制定圖像處理的接口協議。在圖形軟件開發項目中,制定好圖像處理的接口后,圖像處理公司和圖形軟件開發公司可以獨立的并行開發各自的軟件項目。圖像處理公司可以方便的升級圖像處理包,圖形軟件開發公司可以使用不同的圖像處理公司提供的圖像處理包。

  • 普通類:只有具體實現

  • 抽象類:具體實現和規范(抽象方法)都有!

  • 接口:只有規范,自己不能寫方法。約束和實現分離。

說白了,接口就是規范,也就是定義了一組規則,體現了現實世界中“如果你是…,則必須能…”的思想。接口的本質是契約,就像我們人間的法律一樣,制定好后大家都遵守。OO的精髓,是對對象的抽象,最能體現這一點的就是接口。 為什么我們討論設計,模式都只針對具備了抽象能力的語言(比如C++,Java,C#等),就是因為設計模式所研究的,實際上就是如何合理的去抽象。

聲明類的關鍵字是class,聲明接口的關鍵字是interface

接口的多態性

不同的類實現了相同的接口,不同類實現的接口的行為是不同的。程序設計中接口的多態性的實現是通過接口變量來實現的。把實現接口的類的對象賦值給接口變量,接口變量成為了一個上轉型對象,然后使用接口變量調用接口方法。接口指向不同類的對象時,其行為表現是不同的,這就是接口的多態性。

下面我們看一個例子:

public class Example04 {public static void main(String[] args) {//創建Speaker類的實例speakerSpeaker speaker = new Speaker();//speaker的方法makeSpeak的參數為接口類型的參數,下面兩個分別是不同的對象(他們都實現了接口Speakable),接口指向不同類的對象時,其行為表現是不同的。這就是接口的多態性。speaker.makeSpeak(new Dog());speaker.makeSpeak(new Cat());} }class Speaker {public void makeSpeak(Speakable ispeak) { //接口類型參數ispeak.speak();} } //Dog實現接口 重寫speak方法 class Dog implements Speakable {@Overridepublic void speak(){System.out.println("Wang Wang Wang!");} } //Cat實接口 重寫speak方法 class Cat implements Speakable {@Overridepublic void speak(){System.out.println("Miao Miao Miao!");} }
抽象類和接口的異同

抽象類和接口都需要有具體的類去實現。在軟件世界中,抽象類和接口的使用場合是不同的。

從語法角度來說,

  • 抽象類有構造方法,用于子類實例化使用;接口中沒有構造方法
  • 抽象類中方法可以抽象也可以不抽象;接口的方法jdk1.7只能是抽象的。默認修飾符:public abstract(推薦:默認修飾符請自己永遠手動給出)
    jdk1.8可以寫以default和static開頭的具體方法
  • 接口中只可以有常量(默認修飾符:public static final),不可以有變量;abstract類中既可以有常量也可以有變量
  • 接口的作用
    • 1.本質上也就是一種約束
    • 2.定義一些方法,讓不同的人實現
    • 3.接口里面的方法都是public abstract
    • 4.接口里面的常量都是public static final
    • 5.接口不能被實例化,接口中是沒有構造器的
    • 6.可以實現多個接口,即接口可以多繼承,通過implements
    • 7.實現了接口的類,必須要重寫接口里面的方法
    面向接口編程

    在一個軟件項目的開發過程中,可以分成多個部分,然后共同完成。各個軟件開發組織之間只需要定義好各個軟件組成部分之間的交互接口,就可以并行獨立的完成各自的開發任務。例如自動駕駛項目。如下:

    public class Example05 {public static void main(String[] args) {AutoDriver driver = new AutoDriver();driver.drive(new BYD());driver.drive(new GL());} } class AutoDriver {public void drive(OperateCar icar) {//……icar.start();//…….} } interface OperateCar {// constant declarations, if any// method signatures//int turn(…);void start();// more method signatures } class BYD implements OperateCar{// the OperateCar method implementationpublic void start() {System.out.println("start BYD");}// other members, as needed } class GL implements OperateCar{// the OperateCar method implementationpublic void start() {System.out.println("start GL");}// other members, as needed }

    結語

    真正有光的人,壓的時間越久,深度越深,綻放的光芒才可以越燦爛。

    總結

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

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