最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java超詳細(xì)講解接口的實(shí)現(xiàn)與用法

 更新時(shí)間:2022年04月28日 09:34:24   作者:orangemilk_  
Java接口是一系列方法的聲明,是一些方法特征的集合,一個(gè)接口只有方法的特征沒有方法的實(shí)現(xiàn),因此這些方法可以在不同的地方被不同的類實(shí)現(xiàn),而這些實(shí)現(xiàn)可以具有不同的行為

1.接口的定義

接口是一種特殊的抽象類,是Java提供的一個(gè)重要的功能,與抽象類不同的是:

  • 接口的所有數(shù)據(jù)成員都是靜態(tài)的且必須初始化。
  • 接口中的所有方法必須都是抽象方法,不能有一般的方法。

[public] interface 接口名稱 [extends  父接口名列表]
{
    [public] [static] [final]數(shù)據(jù)類型 成員變量名 = 常量;
    ...
    [public][abstract]返回值數(shù)據(jù)類型 方法名(參數(shù)表);
    ...

其中,成員方法必須都是抽象方法。接口定義的[ ]中的修飾符可以省略,省略后默認(rèn)為以上訪問權(quán)限。

---------------??分割線??---------------

2.接口的實(shí)現(xiàn)

接口和抽象類一樣不能用來實(shí)例化對(duì)象,必須借用接口的特征創(chuàng)建出來一個(gè)新的類,然后用新的類來實(shí)例化對(duì)象。

  • 利用接口創(chuàng)建新的類的過程稱為接口的實(shí)現(xiàn)。
  • 實(shí)現(xiàn)一個(gè)接口的過程使用implements關(guān)鍵字。

class 類名稱 implements 接口名表
{
    ...

  • 如果實(shí)現(xiàn)某接口的類不是抽象類,那么它必須實(shí)現(xiàn)指定接口的所有抽象方法。
  • 類在實(shí)現(xiàn)接口的方法時(shí)必須顯式的使用pulic訪問權(quán)限修飾符,子類覆蓋父類方法時(shí)不可以縮小父類方法的訪問權(quán)限范圍。

---------------??分割線??---------------

3.接口的引用

接口可以作為一種引用類型來使用,任何實(shí)現(xiàn)該接口的類實(shí)例化的對(duì)象都可以儲(chǔ)存在該接口類型的變量中,通過這些變量訪問類所實(shí)現(xiàn)的接口中的方法。

---------------??分割線??---------------

4.接口的繼承

當(dāng)然啦!接口和類一樣也可以使用繼承派生出來新的類。也可以通過extends關(guān)鍵字來實(shí)現(xiàn),被繼承的接口稱為父接口,派生出來的新接口稱為子接口。但是不同的是,一個(gè)子接口可以同時(shí)有多個(gè)直接父接口。它們之間用逗號(hào)分隔。子接口繼承父接口的所有變量和方法。

如果子接口中定義了和父接口同名的常量,父接口中的常量被隱藏,如果時(shí)方法,則被覆蓋。

interface A{
    abstract void print1();
}
interface B extends A{
    abstract void print2();
}
class C implements B{
    public void print1(){
        System.out.print("Hello");
    }
    public void print2(){
        System.out.print("World");
    }
}
public class Print{
    public static void main(String[] args){
        B b=new C();
        b.print1();
        b.print2();
    }
}

其中B接口是A接口的直接父接口,C類實(shí)現(xiàn)B接口,覆蓋B接口中的所有的抽象方法。Print類是主類,定義接口的引用指向?qū)崿F(xiàn)它的類的實(shí)例化對(duì)象,訪問類所實(shí)現(xiàn)的接口中的方法。(接口作為引用數(shù)據(jù)類型使用)

---------------??分割線??---------------

5.利用接口實(shí)現(xiàn)多重繼承

由于Java不支持多重繼承,所以可以利用接口實(shí)現(xiàn)類似于多重繼承的機(jī)制,同時(shí)規(guī)避了C++多重繼承中存在很多歧義的問題,使代碼更加簡(jiǎn)潔,邏輯清晰,安全可靠。一個(gè)類只能有一個(gè)直接父類,但是它可以同時(shí)實(shí)現(xiàn)多個(gè)接口,可以把接口理解為類,即實(shí)現(xiàn)了Java類的多重繼承。

//filename:Cylinder.java
interface Face1{
    final double PI=3.14;
    abstract double area();
}
interface Face2{
    abstract void volume();
}
public class Cylinder implements Face1,Face2{
    private double radius;
    private int height;
    public Cylinder(double r,int h){
        radius=r;
        height=h;
    }
    public double area(){
        return PI*radius*radius;
    }
    public void volume(){
        System.out.print("圓柱體的體積="+this.area()*height);
    }
    public static void main(String[] args){
        Cylinder volu=new Cylinder(5.0,2);
        volu.volume();
    }
}
//圓柱體的體積=157.0

到此這篇關(guān)于Java超詳細(xì)講解接口的實(shí)現(xiàn)與用法的文章就介紹到這了,更多相關(guān)Java接口內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 詳細(xì)解讀AbstractStringBuilder類源碼

    詳細(xì)解讀AbstractStringBuilder類源碼

    這篇文章主要介紹了詳細(xì)解讀AbstractStringBuilder類源碼,具有一定參考價(jià)值,需要的朋友可以了解下。
    2017-12-12
  • jsp+dao+bean+servlet(MVC模式)實(shí)現(xiàn)簡(jiǎn)單用戶登錄和注冊(cè)頁(yè)面

    jsp+dao+bean+servlet(MVC模式)實(shí)現(xiàn)簡(jiǎn)單用戶登錄和注冊(cè)頁(yè)面

    這篇文章主要介紹了jsp+dao+bean+servlet(MVC模式)實(shí)現(xiàn)簡(jiǎn)單用戶登錄和注冊(cè)頁(yè)面,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • springcloud?gateway實(shí)現(xiàn)簡(jiǎn)易版灰度路由步驟詳解

    springcloud?gateway實(shí)現(xiàn)簡(jiǎn)易版灰度路由步驟詳解

    這篇文章主要為大家介紹了springcloud?gateway實(shí)現(xiàn)簡(jiǎn)易版灰度路由步驟詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-11-11
  • springboot整合vue項(xiàng)目(小試牛刀)

    springboot整合vue項(xiàng)目(小試牛刀)

    這篇文章主要介紹了springboot整合vue項(xiàng)目(小試牛刀),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-09-09
  • Spring bean為什么默認(rèn)是單例

    Spring bean為什么默認(rèn)是單例

    這篇文章主要介紹了Spring bean為什么默認(rèn)是單例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • 用java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    用java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)學(xué)生信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • java由JABXContext注解讀取xml配置文件方式

    java由JABXContext注解讀取xml配置文件方式

    這篇文章主要介紹了java由JABXContext注解讀取xml配置文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 解決Springboot 2 的@RequestParam接收數(shù)組異常問題

    解決Springboot 2 的@RequestParam接收數(shù)組異常問題

    這篇文章主要介紹了解決Springboot 2 的@RequestParam接收數(shù)組異常問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java實(shí)現(xiàn)網(wǎng)頁(yè)爬蟲的示例講解

    java實(shí)現(xiàn)網(wǎng)頁(yè)爬蟲的示例講解

    下面小編就為大家?guī)硪黄猨ava實(shí)現(xiàn)網(wǎng)頁(yè)爬蟲的示例講解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08
  • SpringBoot前后端json數(shù)據(jù)交互的全過程記錄

    SpringBoot前后端json數(shù)據(jù)交互的全過程記錄

    現(xiàn)在大多數(shù)互聯(lián)網(wǎng)項(xiàng)目都是采用前后端分離的方式開發(fā),下面這篇文章主要給大家介紹了關(guān)于SpringBoot前后端json數(shù)據(jù)交互的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-03-03

最新評(píng)論

乡城县| 香港| 渭南市| 聊城市| 南康市| 昭苏县| 新邵县| 竹北市| 翁源县| 陈巴尔虎旗| 鄂州市| 高台县| 清河县| 福鼎市| 陇川县| 莲花县| 祥云县| 梅河口市| 瓮安县| 沙河市| 余干县| 迭部县| 佛山市| 昭通市| 通化市| 云和县| 崇仁县| 济南市| 婺源县| 永定县| 菏泽市| 鹤壁市| 宝鸡市| 海原县| 新晃| 棋牌| 轮台县| 山东| 南郑县| 丽江市| 汕头市|