1. gzyueqian
      13352868059

      Java培訓(xùn)小課堂:什么是java的繼承?特點(diǎn)是什么?

      更新時(shí)間: 2021-06-28 11:07:32來(lái)源: 粵嵌教育瀏覽量:9515

      Java現(xiàn)在作為IT開(kāi)發(fā)的主力開(kāi)發(fā)語(yǔ)言,在編程界的地位是可想而知的了。繼承作為面對(duì)象的三大特征之一,其也是java學(xué)習(xí)的重要性。繼承這個(gè)知識(shí)點(diǎn)對(duì)于想要學(xué)習(xí)java的學(xué)員來(lái)說(shuō)也是比較難的,今天粵嵌科技Java培訓(xùn)小課堂就來(lái)給大家說(shuō)下什么是java的繼承?特點(diǎn)是什么?

      一、概述

      繼承描述的是事物之間的所屬關(guān)系。例如,兔子屬于食草動(dòng)物,食草動(dòng)物屬于動(dòng)物。它們之間有相同的行為,也有不同的行為,如果分別要進(jìn)行定義,那些相同的行為還要再次定義會(huì)就會(huì)顯得麻煩,所以我們把那些相同的行為重新定義到一個(gè)新類(lèi)中,在其它類(lèi)需要用她的時(shí)候在調(diào)用它就好。定義那些共同的行為的類(lèi)叫做父類(lèi),而調(diào)用它們的類(lèi)叫子類(lèi)。

      可見(jiàn),父類(lèi)更通用,子類(lèi)更具體。我們通過(guò)繼承,可以使多種事物之間形成一種關(guān)系體系。因此通俗的講,繼承就是子類(lèi)繼承父類(lèi)的屬性和行為,使得子類(lèi)對(duì)象可以直接具有與父類(lèi)相同的屬性、相同的行為。子類(lèi)可以直接訪問(wèn)父類(lèi)中的非私有的屬性和行為。

      二、繼承在java中的應(yīng)用

      那么,繼承在java中到底如何運(yùn)用呢?那就必須借助到extends關(guān)鍵字了

      發(fā)現(xiàn),咱們并沒(méi)有在Studnet類(lèi)和Teacher類(lèi)中定義eat方法,但咱們還能正常調(diào)用eat方法,這就是繼承的體現(xiàn)。

      繼承的優(yōu)點(diǎn)

      1.提高代碼的復(fù)用性(減少代碼冗余,相同代碼重復(fù)利用)。

      2.使類(lèi)與類(lèi)之間產(chǎn)生了關(guān)系。

      三、子類(lèi)不能繼承的內(nèi)容

      并不是父類(lèi)的所有內(nèi)容都可以給子類(lèi)繼承的,有一些內(nèi)容是子類(lèi)無(wú)法繼承的。

      如:子類(lèi)不能繼承父類(lèi)的構(gòu)造方法,因?yàn)闃?gòu)造方法要求和當(dāng)前類(lèi)名必須一致;子類(lèi)可以繼承父類(lèi)的私有成員,但是不能直接使用,必須間接使用,要提供get set方法。

      私有化的成員變量和成員方法是不能被訪問(wèn)的,只能在本類(lèi)中調(diào)用,所以子類(lèi)繼承父類(lèi)并不是繼承父類(lèi)中的所有內(nèi)容。

      四、繼承特點(diǎn)

      只需明確一點(diǎn),java只支持單繼承,不支持多繼承,但支持多重繼承。

      五、繼承后成員變量的特點(diǎn)

      Java培訓(xùn)小課堂在上面的測(cè)試類(lèi)代碼中,僅僅只創(chuàng)建了子類(lèi)對(duì)象,并沒(méi)有創(chuàng)建父類(lèi)對(duì)象,但在程序運(yùn)行中卻使用了父類(lèi)中的成員變量,這說(shuō)明在程序中已經(jīng)為父類(lèi)的成員變量開(kāi)辟了空間。所以,當(dāng)子類(lèi)繼承了父類(lèi),在創(chuàng)建子類(lèi)對(duì)象的時(shí)候,堆中的子類(lèi)對(duì)象中會(huì)劃分出一片空間來(lái)保存父類(lèi)中的成員變量。

      Java培訓(xùn)小課堂上述代碼創(chuàng)建子類(lèi)對(duì)象,給堆中子類(lèi)和父類(lèi)中的成員變量分別隱式初始化值后,創(chuàng)建好的對(duì)象會(huì)去調(diào)用子類(lèi)的無(wú)參構(gòu)造函數(shù),在執(zhí)行無(wú)參構(gòu)造函數(shù)里面的代碼之前,會(huì)先執(zhí)行隱式三步,即調(diào)用父類(lèi)中的構(gòu)造函數(shù)super().

      Java培訓(xùn)小課堂說(shuō)明:super具有幾個(gè)作用:

      1.super(實(shí)參)調(diào)用父類(lèi)的構(gòu)造方法

      2.super.父類(lèi)的成員變量:使用父類(lèi)的成員變量

      3.super.父類(lèi)的成員方法(實(shí)參)

      六、繼承中成員方法的特點(diǎn)

      首先是子類(lèi)中含有不同名方法的調(diào)用順序,原則是就近原則,子類(lèi)中沒(méi)有而父類(lèi)中有,執(zhí)行父類(lèi)中的方法,子類(lèi)中有父類(lèi)中也有,執(zhí)行子類(lèi)中的方法。

      七、方法重寫(xiě)

      子類(lèi)中出現(xiàn)與父類(lèi)一模一樣的方法時(shí)(返回值類(lèi)型,方法名和參數(shù)列表都相同),會(huì)出現(xiàn)覆蓋效果,也稱為重寫(xiě)或者復(fù)寫(xiě)。聲明不變,重新實(shí)現(xiàn)。

      構(gòu)成條件:

      1.有繼承

      2.子類(lèi)的方法返回值類(lèi)型方法名參數(shù)列表(參數(shù)類(lèi)型)必須一致

      3.子類(lèi)的權(quán)限修飾符必須大于等于父類(lèi)的權(quán)限修飾符

      代碼示例的話可以參考上面代碼,差別不大。

      八、構(gòu)造器

      構(gòu)造器的名字是與類(lèi)名一致的。所以子類(lèi)是無(wú)法繼承父類(lèi)構(gòu)造方法的。構(gòu)造器的作用是初始化對(duì)象成員變量數(shù)據(jù)的。所以子類(lèi)的初始化過(guò)程中,必須先執(zhí)行父類(lèi)的初始化動(dòng)作。子類(lèi)的構(gòu)造方法中默認(rèn)有一個(gè)super(),表示調(diào)用父類(lèi)的構(gòu)造方法,父類(lèi)成員變量初始化后,才可以給子類(lèi)使用。

      今天的Java培訓(xùn)小課堂到此為止,咱們下期再見(jiàn)。

      免費(fèi)預(yù)約試聽(tīng)課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 网友久久更新新视频免费 | 亚洲日韩在线第二页 | 亚洲人成中文电影 | 婷婷精品大全在线观看 | 亚洲乱码国产精品 | 亚洲国产精品美女久久久久8k |