您好,歡迎來到賦能網(wǎng)!

java中繼承和派生的區(qū)別是什么?實(shí)例分析

賦能網(wǎng) 2023-05-09 80

繼承和派生都是java重要知識(shí)點(diǎn),繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類。而在java的繼承關(guān)系中,新的類稱為子類,也叫派生類。那java中繼承和派生的區(qū)別是什么?下面來我們就來給大家講解一下。

1.繼承

繼承,顧名思義,就是把已經(jīng)有的拿過來歸為己用,java中的繼承也不例外。舉個(gè)例子,假如現(xiàn)在有這樣一個(gè)需求,讓我們寫一個(gè)關(guān)于狗的Dog類,Dog類中有狗的名字、年齡,還有狗的兩種行為,也就是這個(gè)類的兩種方法,分別是run(跑)方法和bark(犬吠)方法,那么我們就可以這樣寫:

public class Dog
{
    String name;
    int age;
    public void run()
    {
        System.out.println("狗在跑!");
    }
    public void bark()
    {
        System.out.println("狗在叫!");
    }
}

很好,我們實(shí)現(xiàn)了Dog這個(gè)類,那么現(xiàn)在如果讓我們寫一個(gè)拉布拉多類(狗的一種)呢?顯然,拉布拉多也具有名字、年齡、跑、叫的行為,那么如果我們從頭開始寫拉布拉多這個(gè)類,就太麻煩了,我們還要重新寫一遍剛才寫的東西,這個(gè)時(shí)候,就要用到繼承,所以我們可以這樣去寫:

public class Labuladuo extends Dog
{}

extends是繼承的關(guān)鍵字,通過extends,我們實(shí)現(xiàn)了讓拉布拉多這個(gè)類繼承了Dog這個(gè)類,這不難理解,畢竟,拉布拉多就是狗的一種嘛。現(xiàn)在,由于我們的訪問權(quán)限設(shè)置的都是public,那么父類具有的東西子類也有,于是,拉布拉多也有了名字、年齡兩個(gè)成員變量,有了跑和叫兩個(gè)方法。

2. 派生

顧名思義,派生是在繼承了一些東西的基礎(chǔ)上增添了新的東西,派生是依存于繼承的,子類在拿來父類的東西去使用的同時(shí),可以增添新的東西或者對(duì)繼承來的東西進(jìn)行覆寫讓其適用于子類。例如,我們現(xiàn)在在繼承了Dog類的拉布拉多類中新增一個(gè)給盲人導(dǎo)盲的方法daoMang(),那么,我們僅僅用子類對(duì)象才能調(diào)用這個(gè)方法,而用父類對(duì)象無法調(diào)用,因?yàn)檫@個(gè)方法是子類拉布拉多類獨(dú)有的,也就是說,這是從父類的基礎(chǔ)上拓展出來的方法,也就是派生。此時(shí)的拉布拉多,既可以使用父類Dog類的所有狗都共有的run和bark方法,也同時(shí)具有了Dog類的name和age的狗的基本屬性。

public class Labuladuo extends Dog
{
    public void daoMang()
    {
        System.out.println("我會(huì)導(dǎo)盲!");
    }
}

其實(shí)派生是在繼承了一些東西的基礎(chǔ)上增添了新的東西,派生是依存于繼承的,并且java的繼承關(guān)系中,新的類稱是子類,也就是派生類。最后大家如果想要了解更多java初識(shí)知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。


本文鏈接:

本文章“java中繼承和派生的區(qū)別是什么?實(shí)例分析”已幫助 80 人

免責(zé)聲明:本信息由用戶發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢熱線:4008-569-579

如果本頁不是您要找的課程,您也可以百度查找一下: