JAVA基礎(chǔ)之繼承(inheritance)詳解
繼承(inheritance)是Java OOP中一個(gè)非常重要的概念。繼承是在復(fù)用已存在的類(lèi)的方法和域的基礎(chǔ)上,還可以添加新的方法和域。Java用extends關(guān)鍵字來(lái)表示繼承關(guān)系(is-a)。被繼承的類(lèi)稱(chēng)為超類(lèi)(superclass)、基類(lèi)(base class)、父類(lèi)(parent class),而新類(lèi)被稱(chēng)為子類(lèi)(subclass)、派生類(lèi)(derived class)或孩子類(lèi)(child class)。
1.class:編程語(yǔ)言中的基本單位。將數(shù)據(jù)和功能封裝到了一起。
2.基類(lèi)包含其所有導(dǎo)出類(lèi)共享的特性和行為。
3.可以創(chuàng)建一個(gè)基類(lèi)來(lái)表示系統(tǒng)中某些對(duì)象的核心概念,從基類(lèi)中導(dǎo)出其他類(lèi)型,來(lái)表示此核心可以被實(shí)現(xiàn)的各種不同方式。
4.基類(lèi)的private成員導(dǎo)出類(lèi)不可訪(fǎng)問(wèn)。
5.導(dǎo)出類(lèi)復(fù)制了父類(lèi)的接口,所以所有可以發(fā)送給基類(lèi)對(duì)象的消息同時(shí)也可以發(fā)送給導(dǎo)出類(lèi)對(duì)象。所導(dǎo)出類(lèi)與基類(lèi)具有相同的類(lèi)型。
6.兩種方法可以讓基類(lèi)與導(dǎo)出類(lèi)產(chǎn)生差異:
1)直接在導(dǎo)出類(lèi)中添加新方法;
2)改變現(xiàn)有基類(lèi)的方法的行為--覆蓋(overiding)基類(lèi)的方法。
7.is-a與is-like-a:
1)is-a:導(dǎo)出類(lèi)與基類(lèi)具有完全相同的接口,即導(dǎo)出類(lèi)與基類(lèi)是完全相同的類(lèi)型。如:一個(gè)圓 is a 幾何圖形。判斷是否是繼承,就要確定是否可以用is-a來(lái)描述類(lèi)之間的關(guān)系,并使之具有實(shí)際意義。
2)is-like-a:導(dǎo)出類(lèi)型中添加了新的接口元素,即擴(kuò)展了接口,基類(lèi)無(wú)法訪(fǎng)問(wèn)新添加的方法。此時(shí)導(dǎo)出類(lèi)is like a 基類(lèi)。
以上所述是小編給大家介紹的JAVA基礎(chǔ)之繼承(inheritance),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
詳解Java動(dòng)態(tài)加載數(shù)據(jù)庫(kù)驅(qū)動(dòng)
本篇文章主要介紹了詳解Java動(dòng)態(tài)加載數(shù)據(jù)庫(kù)驅(qū)動(dòng),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-05-05
Java從入門(mén)到起飛之?dāng)?shù)組使用詳解
這篇文章主要介紹了Java從入門(mén)到起飛之?dāng)?shù)組使用的相關(guān)資料,包括數(shù)組的聲明、初始化、長(zhǎng)度、索引、遍歷和默認(rèn)值等內(nèi)容,還介紹了Arrays工具類(lèi)中常用的方法,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2025-03-03
springboot與vue詳解實(shí)現(xiàn)短信發(fā)送流程
隨著人工智能的不斷發(fā)展,機(jī)器學(xué)習(xí)這門(mén)技術(shù)也越來(lái)越重要,很多人都開(kāi)啟了學(xué)習(xí)機(jī)器學(xué)習(xí),本文就介紹了機(jī)器學(xué)習(xí)的基礎(chǔ)內(nèi)容2022-06-06
mybatis使用Integer類(lèi)型查詢(xún)可能出現(xiàn)的問(wèn)題
這篇文章主要介紹了mybatis使用Integer類(lèi)型查詢(xún)可能出現(xiàn)的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-03-03
SpringBoot整合Java Web三大件的詳細(xì)過(guò)程
這篇文章主要介紹了SpringBoot整合Java Web三大件的詳細(xì)過(guò)程,注冊(cè)自定義的Servlet、Filter、Listener組件到springboot內(nèi)嵌的Servlet容器,讓它們發(fā)揮自己的作用,需要的朋友可以參考下2025-04-04
Java如何向主函數(shù)main中傳入?yún)?shù)
這篇文章主要介紹了Java如何向主函數(shù)main中傳入?yún)?shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-02-02
Spring中Bean的加載與SpringBoot的初始化流程詳解
這篇文章主要介紹了Spring中Bean的加載與SpringBoot的初始化流程詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-11-11
Java并發(fā)LinkedBlockingQueue源碼分析
這篇文章主要為大家介紹了Java并發(fā)LinkedBlockingQueue源碼分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02

