欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

1.接口的定義

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

  • 接口的所有數(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í)例化對象,必須借用接口的特征創(chuàng)建出來一個新的類,然后用新的類來實(shí)例化對象。

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

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

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

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

3.接口的引用

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

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

4.接口的繼承

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

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

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í)例化對象,訪問類所實(shí)現(xiàn)的接口中的方法。(接口作為引用數(shù)據(jù)類型使用)

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

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

由于Java不支持多重繼承,所以可以利用接口實(shí)現(xiàn)類似于多重繼承的機(jī)制,同時規(guī)避了C++多重繼承中存在很多歧義的問題,使代碼更加簡潔,邏輯清晰,安全可靠。一個類只能有一個直接父類,但是它可以同時實(shí)現(xiàn)多個接口,可以把接口理解為類,即實(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring Boot ActiveMQ如何設(shè)置訪問密碼

    Spring Boot ActiveMQ如何設(shè)置訪問密碼

    這篇文章主要介紹了Spring Boot ActiveMQ如何設(shè)置訪問密碼,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • Java設(shè)計(jì)模式之策略模式案例詳解

    Java設(shè)計(jì)模式之策略模式案例詳解

    策略模式(Strategy?Pattern)定義了一組同類型的算法,在不同的類中封裝起來,每種算法可以根據(jù)當(dāng)前場景相互替換,從而使算法的變化獨(dú)立于使用它們的客戶端即算法的調(diào)用者
    2022-07-07
  • java打包成jar并執(zhí)行jar包中指定的main方法

    java打包成jar并執(zhí)行jar包中指定的main方法

    這篇文章主要介紹了如何將java打包成可執(zhí)行的jar,并執(zhí)行jar包中指定的main方法的相關(guān)資料,文中給出了詳細(xì)的示例代碼,對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。
    2017-03-03
  • Spring AOP 的組成和實(shí)現(xiàn)

    Spring AOP 的組成和實(shí)現(xiàn)

    這篇文章主要介紹了Spring AOP 的組成和實(shí)現(xiàn),AOP 是一種思想,Spring AOP 是這種思想的具體實(shí)現(xiàn),本文結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2023-07-07
  • Java 8 Stream Api 中的 map和 flatMap 操作方法

    Java 8 Stream Api 中的 map和 flatMap 操作方法

    Java 8提供了非常好用的 Stream API ,可以很方便的操作集合。今天通過這篇文章給大家分享Java 8 Stream Api 中的 map和 flatMap 操作方法,需要的朋友可以參考下
    2019-11-11
  • Hadoop多Job并行處理的實(shí)例詳解

    Hadoop多Job并行處理的實(shí)例詳解

    這篇文章主要介紹了Hadoop多Job并行處理的實(shí)例詳解的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-10-10
  • SpringBoot使用SSE進(jìn)行實(shí)時通知前端的實(shí)現(xiàn)代碼

    SpringBoot使用SSE進(jìn)行實(shí)時通知前端的實(shí)現(xiàn)代碼

    這篇文章主要介紹了SpringBoot使用SSE進(jìn)行實(shí)時通知前端,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • ssm框架+PageHelper插件實(shí)現(xiàn)分頁查詢功能

    ssm框架+PageHelper插件實(shí)現(xiàn)分頁查詢功能

    今天小編教大家如何通過ssm框架+PageHelper插件實(shí)現(xiàn)分頁查詢功能,首先大家需要新建一個maven工程引入jar包,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-06-06
  • 詳解springMVC之與json數(shù)據(jù)交互方法

    詳解springMVC之與json數(shù)據(jù)交互方法

    本篇文章主要介紹了詳解springMVC之與json數(shù)據(jù)交互方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-05-05
  • JVM的基本介紹以及垃圾回收

    JVM的基本介紹以及垃圾回收

    垃圾回收(Garbage Collection,GC),顧名思義就是釋放垃圾占用的空間,防止內(nèi)存泄露,這篇文章主要給大家介紹了關(guān)于JVM垃圾回收的相關(guān)資料,需要的朋友可以參考下
    2021-09-09

最新評論