Java-繼承

繼承

繼承(inheritance)是面向?qū)ο蟮闹匾拍?。繼承是除組合(composition)之外,提高代碼重復(fù)可用性(reusibility)的另一種重要方式。我們在組合(composition)中看到,組合是重復(fù)調(diào)用對象的功能接口。我們將看到,繼承可以重復(fù)利用已有的類的定義。

繼承涉及到5個內(nèi)容:

1、基類的繼承(基類public數(shù)據(jù)成員和方法的繼承)

2、衍生類成員的補(bǔ)充

3、基類與衍生層的成員訪問(隱式參數(shù)this和super的使用)

4、基類與衍生類的方法覆蓋

5、基類與衍生層的構(gòu)造方法調(diào)用

用以下代碼來解釋

一、基本代碼
先定義一個People類

package Inheritance;

class People
{
    
    private String name;
    
    private int age;
    
    public People(String name, int age)
    {
        this.name = name;
        this.age = age;
    }
    
    public String getName()
    {
        return this.name;
    }
    
    public int getAge()
    {
        return this.age;
    }
    
    public void showInfo()
    {
        
        System.out.println("My name is:" + this.name + ",my age is:" + this.age);
        
    }
    
}

定義一個繼承People類的Student類

package Inheritance;

//  用關(guān)鍵字extends實(shí)現(xiàn)繼承
class Student extends People
{
    // Student作為People的衍生類,可補(bǔ)充自有的數(shù)據(jù)成員sex、sexStr
    private boolean sex;
    
    private String sexStr;
    
    public Student(String name, int age, boolean sex)
    {
        super(name, age);
        // 隱式參數(shù)super可用于訪問父類的構(gòu)造方法、數(shù)據(jù)成員和方法
        // 子類Student編寫構(gòu)造方法時,必須要調(diào)用父類People的構(gòu)造方法
        this.sex = sex;
        // 隱式參數(shù)this可用于訪問當(dāng)前類內(nèi)部的數(shù)據(jù)成員和方法
        if (sex = true)
        {
            this.sexStr = "男";
        }
        else
        {
            this.sexStr = "女";
        }
        System.out.println("I am student!");
    }
    
    // 衍生類可覆蓋父類的方法,外部類調(diào)用時Student的showInfo()方法時,不會同時調(diào)用父類的showInfo()方法
    public void showInfo()
    {
        System.out.println("Student Infomation:");
        System.out.println("My name is:" + super.getName() + ",my age is:" + super.getAge() + ",my sex is:"
            + this.sexStr);
    }
}


然后我們用InheriTest類實(shí)現(xiàn)這兩個類

package Inheritance;

public class InheriTest
{
    
    public static void main(String[] args)
    {
        // TODO Auto-generated method stub
        
        Student stu = new Student("J-Chen", 26, true);
        
        stu.showInfo();
        
    }
    
}

上面只寫了繼承的一些具體實(shí)現(xiàn),上面的5個知識點(diǎn),已經(jīng)在注釋中寫到。
關(guān)于Java的繼承的具體知識點(diǎn),可以到網(wǎng)上搜,實(shí)在太多了,這里我就不做詳述了。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 父類 static 塊 1 執(zhí)行 父類 靜態(tài)成員staticSam1初始化 父類 靜態(tài)成員staticSam2初始...
    YCix閱讀 1,402評論 0 0
  • 1.繼承的概念由來: 1:is a 關(guān)系 (學(xué)生是人)2:has a 整體與部分 2.繼承的特點(diǎn): 1:描述類和類...
    峰子1994閱讀 331評論 0 0
  • 繼承與合成基本概念 繼承:可以基于已經(jīng)存在的類構(gòu)造一個新類。繼承已經(jīng)存在的類就可以復(fù)用這些類的方法和域。在此基礎(chǔ)上...
    Java紅茶閱讀 401評論 0 4
  • 作為一名老師,在多年的教學(xué)生涯中,我發(fā)現(xiàn),對孩子賞識教育,可以提高孩子的自信心。 說起孩子的優(yōu)點(diǎn),一般人都會毫不猶...
    蒲陽凡媽閱讀 1,099評論 18 45

友情鏈接更多精彩內(nèi)容