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

Java?深入淺出解析面向?qū)ο笾橄箢惡徒涌?/h1>
 更新時間:2022年03月23日 14:59:35   作者:桃花鍵神  
本章具體介紹了抽象類和接口,整篇文章用目前流行的手機來舉例,圖解穿插代碼案例。?JAVA成仙路從基礎開始講,后續(xù)會講到JAVA高級,中間會穿插面試題和項目實戰(zhàn),希望能給大家?guī)韼椭?/div>

抽象類

java語言,聲明類時 abstract class Db{} 說明Db類為抽象類。 java語言中,抽象方法是說沒有方法的實現(xiàn)(方法體)此方法為抽象方法,只有抽象類和接口中才可以有抽象方法。

聲明抽象類

聲明抽象類很簡單,加個abstract關節(jié)字就行。

public abstract class AA {
}

聲明抽象方法

在抽象類中聲明一個抽象方法,抽象方法沒有方法體,就是說現(xiàn)在這個方法就是個空架子。

public abstract class AA {
    public abstract int a(int i);
}

案例

描述:

  • 小米手機生產(chǎn)廠生產(chǎn)手機,小米手機廠內(nèi)部分為兩個分廠,一個是紅米手機廠,一個是黑米手機廠。
  • 紅米手機特點是屏幕大,充電快。
  • 黑米手機特點是發(fā)熱,音質(zhì)好。

實現(xiàn):

  • 先聲明一個抽象類 小米手機廠類,小米手機廠類里有兩個抽象方法分別為a和b,還有一個定義過的方法c
  • 再聲明一個紅米手機廠類繼承小米手機廠,并且實現(xiàn)方法a和方法b
  • 再聲明一個黑米手機廠類繼承小米手機廠,并且實現(xiàn)方法a和方法b

代碼:

Mi.java

public abstract class Mi {
    public abstract void a();
    public abstract void b();
    public void c(){
        System.out.println("小米手機好");
    }
}

Hong.java

public class Hong extends Mi {

    @Override
    public void a() {
        System.out.println("紅米手機屏幕大");
    }

    @Override
    public void b() {
        System.out.println("紅米手機充電快");
    }
}

Hei.java

public class Hei extends Mi {

    @Override
    public void a() {
        System.out.println("黑米手機發(fā)熱");
    }

    @Override
    public void b() {
        System.out.println("黑米手機音質(zhì)好");
    }
}

測試:

public class Test {
    public static void main(String[] args) {
        Hong hong = new Hong();
        Hei hei = new Hei();
        hong.a();
        hong.b();
        hong.c();
        hei.a();
        hei.b();
        hei.c();
    }
}

這個案例的主要描述了抽象方法的一個應用場景,紅米和黑米是小米的一個分支,他們有小米的部分功能,但是他們還想有自己的特色。那么就可以通過實現(xiàn)小米的兩個抽象方法來實現(xiàn)自己的特色。并且小米只聲明了兩個抽象方法,限制了兩個子廠的特色,讓他們只能增加兩個特色,不能無限制的隨意增加多個特色。

使用規(guī)則

使用規(guī)則

抽象類必須被繼承,抽象方法必須被重寫。

抽象類中的抽象方法只需聲明,無需實現(xiàn),沒有方法體

抽象類不能被實例化,抽象類不一定要包含抽象方法,而定義抽象方法的類必須是抽象類。

抽象類包含的抽象方法必須在其子類中被實現(xiàn),否則該子類也必須是抽象類。

抽象類可以有構造方法供子類實例化對象

抽象類不能直接實例化使用,一般用的是抽象類的子類,

A a = new B();

A和B之間的關系,繼承關系,接口實例關系。

類:方法+屬性+靜態(tài)程序段+初始化程序段

抽象類:方法+抽象方法+屬性+靜態(tài)程序段+初始化程序段

抽象類本質(zhì)

1.從類的組成上看其是抽象方法和非抽象方法的集合,還有屬性(常量)。

2.從設計的角度來看,實際上抽象類定義了一套規(guī)范(抽象方法)。(規(guī)范)

接口

接口(英文:Interface),在JAVA編程語言中是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明。一個類通過繼承接口的方式,從而來繼承接口的抽象方法。 接口并不是類,編寫接口的方式和類很相似,但是它們屬于不同的概念。類描述對象的屬性和方法。接口則包含類要實現(xiàn)的方法。 除非實現(xiàn)接口的類是抽象類,否則該類要定義接口中的所有方法。 接口無法被實例化,但是可以被實現(xiàn)。一個實現(xiàn)接口的類,必須實現(xiàn)接口內(nèi)所描述的所有方法,否則就必須聲明為抽象類。另外,在 Java 中,接口類型可用來聲明一個變量,他們可以成為一個空指針,或是被綁定在一個以此接口實現(xiàn)的對象。

聲明接口

interface關鍵字聲明接口AA

public interface AA {
}

案例

描述:

富士康加工廠里有兩個分廠,分別是加工華為手機和蘋果手機。每個手機是由電池、芯片、屏幕這三個硬件組成。兩個品牌的手機都是由這三個硬件組成但是硬件的型號不同。

但是這兩個廠都有一個統(tǒng)一的加工程序把手機組裝

實現(xiàn):

聲明富士康接口,接口內(nèi)聲明一個抽象方法用來組裝手機。

華為和蘋果兩個類分別實現(xiàn)富士康接口,并且實現(xiàn)里面的方法。

富士康接口

public interface Fu {
    void zhuang();
}

華為加工廠

public class HuaWei implements Fu {
    private final String xin = "麒麟芯片";
    private final String dian = "6000am電池";
    private final String ping = "大猩猩屏幕";

    @Override
    public void zhuang() {
        System.out.printf("華為手機:%s,%s,%s %n", xin, dian, ping);
    }
}

蘋果加工廠

public class Iphoe implements Fu {
    private final String xin = "A15芯片";
    private final String dian = "3000am電池";
    private final String ping = "小猩猩屏幕";

    @Override
    public void zhuang() {
        System.out.printf("蘋果手機:%s,%s,%s %n", xin, dian, ping);
    }
}

測試

public class Test {
    public static void main(String[] args) {
        HuaWei huaWei = new HuaWei();
        Iphoe iphoe = new Iphoe();
        huaWei.zhuang();
        iphoe.zhuang();
    }
}

接口特性

接口中每一個方法也是隱式抽象的,接口中的方法會被隱式的指定為 public abstract(只能是 public abstract,其他修飾符都會報錯)。

接口中可以含有變量,但是接口中的變量會被隱式的指定為 public static final 變量(并且只能是 public,用 private 修飾會報編譯錯誤)。

接口中的方法是不能在接口中實現(xiàn)的,只能由實現(xiàn)接口的類來實現(xiàn)接口中的方法。

抽象類和接口的區(qū)別

  • 抽象類中的方法可以有方法體,就是能實現(xiàn)方法的具體功能,但是接口中的方法不行。
  • 抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是 public static final 類型的。
  • 接口中不能含有靜態(tài)代碼塊以及靜態(tài)方法(用 static 修飾的方法),而抽象類是可以有靜態(tài)代碼塊和靜態(tài)方法。
  • 一個類只能繼承一個抽象類,而一個類卻可以實現(xiàn)多個接口。

到此這篇關于Java 深入淺出解析面向?qū)ο笾橄箢惡徒涌诘奈恼戮徒榻B到這了,更多相關Java 抽象類內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 聊聊Spring Boot 如何集成多個 Kafka

    聊聊Spring Boot 如何集成多個 Kafka

    這篇文章主要介紹了Spring Boot 集成多個 Kafka的相關資料,包括配置文件,生成者和消費者配置過程,本文通過實例代碼給大家介紹的非常詳細,需要的朋友參考下吧
    2023-10-10
  • SpringBoot引入Thymeleaf的實現(xiàn)方法

    SpringBoot引入Thymeleaf的實現(xiàn)方法

    這篇文章主要介紹了SpringBoot引入Thymeleaf的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • SpringBoot @ExceptionHandler與@ControllerAdvice異常處理詳解

    SpringBoot @ExceptionHandler與@ControllerAdvice異常處理詳解

    在Spring Boot應用的開發(fā)中,不管是對底層數(shù)據(jù)庫操作,對業(yè)務層操作,還是對控制層操作,都會不可避免的遇到各種可預知的,不可預知的異常需要處理,如果每個處理過程都單獨處理異常,那么系統(tǒng)的代碼耦合度會很高,工作量大且不好統(tǒng)一,以后維護的工作量也很大
    2022-10-10
  • springboot實現(xiàn)小程序支付的項目實踐

    springboot實現(xiàn)小程序支付的項目實踐

    本文主要介紹了springboot實現(xiàn)小程序支付的項目實踐,?可以通過調(diào)用微信支付?API?實現(xiàn)支付功能,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • Java虛擬機最多支持多少個線程的探討

    Java虛擬機最多支持多少個線程的探討

    這篇文章主要介紹了Java虛擬機最多支持多少個線程的問題,從StackOverflow上摘錄而來,需要的朋友可以參考下
    2014-04-04
  • springcloud注冊hostname或者ip的那些事

    springcloud注冊hostname或者ip的那些事

    Spring cloud是一個基于Spring Boot實現(xiàn)的服務治理工具包,在微服務架構中用于管理和協(xié)調(diào)服務的。這篇文章主要介紹了springcloud注冊hostname或者ip,需要的朋友可以參考下
    2019-11-11
  • Java的Hibernate框架中復合主鍵映射的創(chuàng)建和使用教程

    Java的Hibernate框架中復合主鍵映射的創(chuàng)建和使用教程

    復合主鍵映射用起來比普通的增加主鍵字段要復雜,這里我們就來共同學習Java的Hibernate框架中復合主鍵映射的創(chuàng)建和使用教程,需要的朋友可以參考下
    2016-07-07
  • SpringMVC基于阻塞隊列LinkedBlockingQueue的同步長輪詢功能實現(xiàn)詳解

    SpringMVC基于阻塞隊列LinkedBlockingQueue的同步長輪詢功能實現(xiàn)詳解

    這篇文章主要介紹了SpringMVC基于阻塞隊列LinkedBlockingQueue的同步長輪詢功能實現(xiàn)詳解,本文介紹的也是生產(chǎn)者消費者的一種實現(xiàn),生產(chǎn)者不必是一個始終在執(zhí)行的線程,它可以是一個接口,接受客戶端的請求,向隊列中插入消息,需要的朋友可以參考下
    2023-07-07
  • SpringBoot中l(wèi)ogback日志保存到mongoDB的方法

    SpringBoot中l(wèi)ogback日志保存到mongoDB的方法

    這篇文章主要介紹了SpringBoot中l(wèi)ogback日志保存到mongoDB的方法,
    2017-11-11
  • Maven 打包項目到私服 (deploy)的配置方法

    Maven 打包項目到私服 (deploy)的配置方法

    這篇文章主要介紹了Maven 打包項目到私服 (deploy)的配置方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-07-07

最新評論

依兰县| 海晏县| 新建县| 贵德县| 云霄县| 阳东县| 遂宁市| 康乐县| 惠州市| 鹤山市| 阳江市| 德格县| 无为县| 麻江县| 通渭县| 彝良县| 辉南县| 开江县| 孟州市| 大关县| 科技| 兴业县| 曲阜市| 荔浦县| 休宁县| 宜宾县| 平罗县| 乌拉特后旗| 双牌县| 本溪市| 望奎县| 彝良县| 长治县| 西藏| 宜川县| 华亭县| 泰来县| 息烽县| 小金县| 青浦区| 巴楚县|