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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

JAVA知识基础(八):继承

發(fā)布時(shí)間:2025/3/8 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 JAVA知识基础(八):继承 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.概述

1.1、繼承的由來(lái)
至于由來(lái)簡(jiǎn)單一句話:多個(gè)類(lèi)中存在相同屬性和行為時(shí),將這些內(nèi)容抽取到單獨(dú)一個(gè)類(lèi)中,那么多個(gè)類(lèi)無(wú)需再定義這些屬性和行為。

繼承描述的是事物之間的所屬關(guān)系,這種關(guān)系是 is-a 的關(guān)系。

1.2、繼承的定義
繼承:就是子類(lèi)繼承父類(lèi)的屬性和行為,使得子類(lèi)對(duì)象具有與父類(lèi)相同的屬性、相同的行為。子類(lèi)可以直接訪問(wèn)父類(lèi)中的非私有的屬性和行為。

這里再聲明一點(diǎn),父類(lèi)又稱(chēng)為超類(lèi)或者基類(lèi)。而子類(lèi)又稱(chēng)為派生類(lèi)這點(diǎn)很基礎(chǔ)!

1.3、繼承的優(yōu)點(diǎn)
提高代碼的復(fù)用性。
類(lèi)與類(lèi)之間產(chǎn)生關(guān)系,為多態(tài)做了完美的鋪墊(不理解沒(méi)關(guān)系,之后我會(huì)再寫(xiě)一篇多態(tài)的文章)
雖然繼承的優(yōu)點(diǎn)很多但是Java只支持單繼承,不支持多繼承。

1.4、繼承的格式
通過(guò) extends 關(guān)鍵字,可以聲明一個(gè)子類(lèi)繼承另外一個(gè)父類(lèi),定義格式如下:

class 父類(lèi) {... }class 子類(lèi) extends 父類(lèi) { ... }

2.關(guān)于繼承之后的成員變量

當(dāng)類(lèi)之間產(chǎn)生了關(guān)系后,其中各類(lèi)中的成員變量,產(chǎn)生了哪些影響呢? 關(guān)于繼承之后的成員變量要從兩方面下手,一是成員變量不重名方面,二是成員變量重名方面。

如果子類(lèi)父類(lèi)中出現(xiàn)不重名的成員變量,這時(shí)的訪問(wèn)是沒(méi)有影響的.

如果子類(lèi)父類(lèi)中出現(xiàn)重名的成員變量,這時(shí)的訪問(wèn)是有影響的
子父類(lèi)中出現(xiàn)了同名的成員變量時(shí),在子類(lèi)中需要訪問(wèn)父類(lèi)中非私有成員變量時(shí),需要使用 super 關(guān)鍵字,至于修飾父類(lèi)成員變量,類(lèi)似于之前學(xué)過(guò)的 this 。 使用格式 super.父類(lèi)成員變量名

如果父類(lèi)中的成員變量非私有:子類(lèi)中可以直接訪問(wèn)。私有:子類(lèi)是不能直接訪問(wèn)的。

3.關(guān)于繼承之后的成員方法

當(dāng)類(lèi)之間產(chǎn)生了關(guān)系,其中各類(lèi)中的成員方法,又產(chǎn)生了哪些影響呢? 同樣我們依舊從兩方面分析。

如果子類(lèi)父類(lèi)中出現(xiàn)不重名的成員方法,這時(shí)的調(diào)用是沒(méi)有影響的。對(duì)象調(diào)用方法時(shí),會(huì)先在子類(lèi)中查找有沒(méi)有對(duì) 應(yīng)的方法,若子類(lèi)中存在就會(huì)執(zhí)行子類(lèi)中的方法,若子類(lèi)中不存在就會(huì)執(zhí)行父類(lèi)中相應(yīng)的方法.

成員方法重名大體也可以分兩種情況:
1、方法名相同返回值類(lèi)型、參數(shù)列表卻不相同(優(yōu)先在子類(lèi)查找,沒(méi)找到就去父類(lèi))
2、方法名、返回值類(lèi)型、參數(shù)列表都相同,沒(méi)錯(cuò)這就是重寫(xiě)(Override)

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

4.關(guān)于繼承之后的構(gòu)造方法

構(gòu)造方法的名字是與類(lèi)名一致的,所以子類(lèi)是無(wú)法繼承父類(lèi)構(gòu)造方法的。

構(gòu)造方法的作用是初始化成員變量的。所以子類(lèi)的初始化過(guò)程中,必須先執(zhí)行父類(lèi)的初始化動(dòng)作。子類(lèi)的構(gòu)造方法中默認(rèn)會(huì)在第一句代碼中添加super(),表示調(diào)用父類(lèi)的構(gòu)造方法,父類(lèi)成員變量初始化后,才可以給子類(lèi)使用。

super() 不寫(xiě)也默認(rèn)存在,而且只能是在第一句代碼中。
下一篇是關(guān)于this與super關(guān)鍵字的總結(jié)。

總結(jié)

以上是生活随笔為你收集整理的JAVA知识基础(八):继承的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。