欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
Java基本概念:接口

一、簡(jiǎn)介

描述:

  • 普通類(lèi)只有具體實(shí)現,抽象類(lèi)具體實(shí)現和規范都有,接口只有規范!
  • 接口就是比抽象類(lèi)還抽象的抽象類(lèi),可以更加規范的對子類(lèi)進(jìn)行約束,全面專(zhuān)業(yè)地實(shí)現了規范和具體實(shí)現的分離。
  • 抽象類(lèi)還提供某些具體實(shí)現,接口不提供任何實(shí)現,接口中所有方法都是抽象方法。
  • 接口是完全面向規范的,規定了一批類(lèi)具有的公共方法規范。
  • 從接口的實(shí)現者角度看,接口定義了可以向外部提供的服務(wù)。
  • 從接口的調用者角度看,接口定義了實(shí)現者能提供哪些服務(wù)。
  • 接口是兩個(gè)模塊之間通信的標準,通信的規范。如果能把你要設計的系統之間模塊之間的接口定義好,就相當于完成了系統的設計大綱,剩下的就是添磚加瓦的具體實(shí)現了。做系統設計時(shí)往往就是使用面向接口的思想來(lái)設計系統。

本質(zhì):

  • 接口就是規范,定義的是一組規則,體現了現實(shí)世界中“如果你是…則必須能…”的思想。如果你是天使,則必須能飛。如果你是汽車(chē),則必須能跑。如果你好人,則必須干掉壞人。如果你是壞人,則必須欺負好人。
  • 接口的本質(zhì)是契約,就像我們人間的法律一樣,制定好后大家都遵守。
  • 面向對象的精髓,是對對象的抽象,最能體現這一點(diǎn)的就是接口。為什么我們討論設計模式都只針對具備了抽象能力的語(yǔ)言(比如c++、java、c#等),就是因為設計模式所研究的,實(shí)際上就是如何合理的去抽象。

作用:

  • 接口的最主要的作用是達到統一訪(fǎng)問(wèn),因為實(shí)現接口的類(lèi)的方法名相同,但是實(shí)現內容不同。
  • 在創(chuàng )建對象的時(shí)候用接口類(lèi)型作為引用的類(lèi)型,想用哪個(gè)實(shí)現類(lèi)去做方法的內部實(shí)現,就new該實(shí)現類(lèi)的對象,調用方法的時(shí)候就可以直接用接口類(lèi)型的引用來(lái)調用。




二、接口與抽象類(lèi)的區別

抽象類(lèi):

  1. 抽象類(lèi)也是類(lèi),除了可以寫(xiě)抽象方法以及不能直接new對象之外,其他的和普通類(lèi)沒(méi)有什么不一樣的。
  2. 聲明類(lèi)的關(guān)鍵字是'class'。
  3. 抽象類(lèi)是用來(lái)被繼承的,Java中的類(lèi)是單繼承,繼承的關(guān)鍵字是'extends'。
  4. 抽象類(lèi)的多態(tài)表現:一個(gè)抽象類(lèi)的引用,可以指向這個(gè)抽象類(lèi)的任意子類(lèi)對象。

接口:

  1. 接口已經(jīng)另一種類(lèi)型了,和類(lèi)是有本質(zhì)的區別的,所以不能用類(lèi)的標準去衡量接口。
  2. 聲明接口的關(guān)鍵字是'interface'。
  3. 接口是用來(lái)被類(lèi)實(shí)現的,Java中的接口可以被多實(shí)現,實(shí)現的關(guān)鍵字是'implements'。
  4. 接口的多態(tài)表現:一個(gè)接口的引用,可以指向這個(gè)接口的任意實(shí)現類(lèi)對象。




三、語(yǔ)法

描述:

  1. 接口中可以不寫(xiě)任何方法,但如果寫(xiě)方法了,該方法必須是'public abstract'修飾的抽象方法。
  2. 接口中定義抽象方法可以不用顯式地聲明'public abstract',不寫(xiě)默認就是'public abstract'修飾的。
  3. 接口中可以不寫(xiě)任何屬性,但如果寫(xiě)屬性了,該屬性必須是'public static final'修飾的靜態(tài)常量,且聲明的同時(shí)就必須賦值,因為接口中不能編寫(xiě)靜態(tài)代碼塊。
  4. 接口中定義靜態(tài)常量可以不用顯式地聲明'public static final',不寫(xiě)默認就是'public static final'修飾的。
  5. 接口中沒(méi)有構造方法,不能被實(shí)例化,但允許定義接口類(lèi)型的引用變量,該引用變量引用實(shí)現了這個(gè)接口的類(lèi)的實(shí)例。
  6. 一個(gè)類(lèi)可以實(shí)現多個(gè)接口;一個(gè)接口不能實(shí)現接口,但可以繼承多個(gè)父接口。

注意:

  • 接口必須通過(guò)類(lèi)來(lái)實(shí)現它的抽象方法。
  • 類(lèi)實(shí)現接口時(shí)需要實(shí)現接口的所有抽象方法,若有抽象方法沒(méi)實(shí)現,這個(gè)類(lèi)就必須聲明為抽象類(lèi)。
  • 一個(gè)引用所指向的對象,是有可能實(shí)現任何一個(gè)接口的。所以使用'instanceof'關(guān)鍵字判斷一個(gè)接口類(lèi)型引用時(shí),只要'instanceof'關(guān)鍵字右邊的類(lèi)或接口不是'final'修飾的,就能編譯通過(guò)。運行結果看引用指向的對象類(lèi)型是否為右邊的類(lèi)的子類(lèi)或實(shí)現類(lèi)。

示例:

interface A {
    int NUM = 1;

    void testA();
}

interface B {
    void testB();
}

interface C extends A, B {
    void testC();
}

class Student implements C {
    public void testA() {
    }

    public void testB() {
    }

    public void testC() {
    }
    
    public void testD() {
    }
}

class Teacher {
}

public class Test {
    public static void main(String[] args) {
        /* c只能調用接口C中聲明和繼承的方法 */
        C c = new Student();
        System.out.println(c instanceof A);//true
        System.out.println(c instanceof B);//true
        System.out.println(c instanceof C);//true
        System.out.println(c instanceof Student);//true
        System.out.println(c instanceof Object);//true
        System.out.println(c instanceof Teacher);//false
        /*
            以下代碼編譯報錯
            System.out.println(o instanceof String);
        */
    }
}




本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
JAVA中extends 與implements
Java編程思想讀書(shū)筆記(一)第1~13、16章
淺談java中extends與implements的區別
07《JAVA從零到壹》第七講:面向對象高級特性(文末有課后作業(yè))
4、面向對象(下)
Java權限修飾符(包括Java8 default介紹)
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久