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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

继承 抽象 接口 多态

發布時間:2025/3/14 编程问答 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 继承 抽象 接口 多态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1.?繼承

  概述

    繼承就是子類繼承父類的屬性和行為,子類可以直接訪問父類的非私有方法

    Java語言是單繼承 多級繼承 一個父類可以有多個子類

    提高了代碼的復用性,類與類之間產生了關系,是多態的前提

  繼承中方法的覆蓋重寫(聲明不變,重新實現)

    父子類之間方法,參數列表相同

    子類方法權限大于等于父類

    子類方法的返回值范圍小于等于父類方法的返回值

    大部分情況下,方法子父類方法聲明是完全一樣的

  繼承中構造方法的訪問

    構造方法名與類名一致,所以子類無法繼承父類構造

    構造方法用于初始化成員變量,子類的初始化過程中,須先執行父類的初始化動作

    父類成員變量初始化后,才可以給子類使用

    所以子類構造必須調用父類構造,不寫則默認贈送super( ); 寫了則不贈送

    子類構造可以通過super關鍵字調用父類重載構造

    子類構造中,super構造調用只能有一個且必須是第一個

    只有子類構造才能調用父類構造,子類成員方法不能調用父類構造

  繼承中成員變量,成員方法的訪問

    與多態完全一樣

    成員變量:編譯看左,運行看左

    成員方法:編譯看左,運行看右

  super在繼承中的用法 ?

    代表父類的存儲空間標識(可以理解為父親的引用)

    子類成員方法中訪問父類的成員變量,方法

    子類構造訪問父類構造 super( );

  this在繼承中的用法

    代表當前對象的引用(誰調用就代表誰)

    本類成員方法中訪問本類成員變量,成員方法

    本類構造訪問本類另一構造

    this調用也必須是構造方法的第一個語句

      this和super兩個構造調用不可同時使用

      this( ); 沒有 .

  繼承圖解

    創建子類對象時,先初始化父類空間,再創建其子類對象本身

    先把父類構造執行完,再在這個父類內容的外圍寫上子類內容

2.?抽象

  概述

    子類們重寫父類方法,而子類各自的實現都不盡相同

    則父類方法聲明和方法主體,聲明有意義,而方法主體沒有意義

    沒有方法主體的方法稱為抽象方法,用abstract修飾

    包含抽象方法的類就是抽象類,用abstract修飾

  注意

    繼承抽象類的子類須重寫父類所有抽象方法,否則該子類也必須聲明為抽象類

    抽象類不能創建對象,只能創建非抽象子類的對象

    抽象類有構造方法,供子類創建對象時,初始化父類空間使用

    不一定包含抽象方法,但是有抽象方法的類必定是抽象類

3.?接口

  概述

    接口是Java語言中一種引用類型,是方法的集合

    接口的作用是制定規則,實現擴展

    如果說類的內部封裝了成員變量,構造方法和成員方法,那么接口的內部主要就是封裝了方法

    接口定義用interface,也會被編譯成.class文件,但要明確它不是類,而是引用數據類型

    接口不能創建對象,但可以被實現(implements,類似繼承),接口實現類需實現接口所有方法

    類是單繼承的,接口是可以多實現的(一個類實現多個接口)

    Java7抽象方法 ?/ ?Java8默認方法,靜態方法 ?/ ?Java9私有方法(靜態/默認)

  接口中的常量

    (public static final) 數據類型 變量名 = 值;

    接口常量必須賦值,否則無法通過編譯

    命名規則:全大寫 _連接 (NUM_OF_PEOPLE)

    通過 接口名.常量名 直接訪問

    接口中的抽象方法:固定修飾符?public ?abstract?可省略

  接口中的默認方法

    解決接口升級問題

    如果接口如添加新的抽象方法,則所有實現類都須實現此抽象方法

    若直接在接口中添加默認方法,則實現類代碼不用更改

    可以直接通過接口名稱.默認方法名稱來調用接口的默認方法

    defaul關鍵字不能省略(因為接口中的方法默認是public的)

    接口默認方法可被繼承,也可重寫,但只能通過實現類對象調用

  接口中的靜態方法

    靜態與.class文件相關

    一個類可實現多個接口,它們的靜態方法可能沖突

    所以應通過 接口名稱.方法名( ) 調用靜態方法,不能通過實現類對象調用

  接口中的私有方法

    解決接口中多個默認方法和靜態方法之間的代碼重復問題

    多個默認方法之間有重復的代碼,用一個共有方法將其抽取出來

    但這個共有方法不能讓實現類訪問到,應該是私有化的,這就是私有方法

    普通私有方法:多個默認方法代碼重復(修飾符只有private,加default報錯,因為權限沖突)

    靜態私有方法:多個靜態方法代碼重復(private和static順序無所謂)

  注意事項

    1.接口沒有靜態代碼塊或者構造方法

    2.實現類所實現的多個接口存在重復的抽象方法,只需覆蓋重寫一次即可

    3.實現類所實現的多個接口存在重復的默認方法,則實現類必須對沖突的默認方法進行覆蓋重寫

    4.父類和接口的默認方法沖突,優先用父類的方法

    5.接口之間的多繼承,多個父接口中的抽象方法重復,沒關系

    6.多個父接口中的默認方法重復,子接口必須覆蓋重寫此默認方法,且帶著default

4.?多態

  概述

    指同一行為,在不同對象身上的多種表現形式

    面向對象三大特征 : 封裝 繼承 多態

    多態的前提:1.繼承/實現 2.方法的重寫 3.父類引用指向子類對象

    格式:父類名稱 對象名 = ?new ?子類名稱( );

  多態的意義

    無論右邊new的是哪個子類對象,左邊都不變,代碼統一

    實現父類的引用動態的調用子類的功能

    有良好的擴展性

    弊端是無法使用子類的特有內容

  多態成員變量,成員方法的訪問

    與繼承完全一樣

    成員變量:編譯看左,運行看左

    成員方法:編譯看左,運行看右

  向上轉型

    其實就是多態寫法

    格式:父類名稱 對象名 = ?new 子類名稱( );

    含義:創建一個子類對象,把它當作父類來看待使用

    向上轉型一定是安全的,從小范圍轉向了大范圍

    對象一旦向上轉型為父類,則無法調用子類特有方法

    類似于基本類型的自動類型轉換

  向下轉型

    作用:解決多態的弊端 (無法使用子類的特有內容)

    格式:子類名稱 對象名 = (子類名稱) 父類對象;

    含義:將父類對象,還原成本來的子類對象

    向下轉型須原路返回,否則編譯通過,但運行報錯

    類似于基本類型的強制類型轉換

    向下轉型之前用instanceof 判斷一下

  Instanceof 方法

    對象名 instanceof 類名/數據類型 :返回一個boolean

轉載于:https://www.cnblogs.com/bushishucai/p/9631691.html

總結

以上是生活随笔為你收集整理的继承 抽象 接口 多态的全部內容,希望文章能夠幫你解決所遇到的問題。

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