Java繼承

繼承

Java繼承是面向?qū)ο蟮淖铒@著的一個(gè)特征.繼承是從已有的類中派生出新的類,新的類能吸收已有類的數(shù)據(jù)屬性和行為,并能擴(kuò)展新的能力
JAVA不支持多繼承,單繼承使JAVA的繼承關(guān)系很簡(jiǎn)單,一個(gè)類只能有一個(gè)父類,易于管理程序
比如:可以先定義一個(gè)類叫車,車有以下屬性:車體大小,顏色,方向盤,輪胎,而又由車這個(gè)類派生出轎車和卡車兩個(gè)類,為轎車添加一個(gè)小后備箱,而為卡車添加一個(gè)大貨箱.
繼承所表達(dá)的就是一種對(duì)象類之間的相交關(guān)系,它使得某類對(duì)象可以繼承另外一類對(duì)象的數(shù)據(jù)成員和成員方法,若類B繼承類A,則屬于B的對(duì)象便具有類A的全部或部分性質(zhì)(數(shù)據(jù)屬性)和功能(操作),我們稱被繼承的類A為父類,而稱繼承類B為A的子類.

特點(diǎn)

繼承關(guān)系是傳遞的.若類C繼承類B,類B繼承類A(多層繼承),則類C既有從類B那里繼承下來的屬性與方法,也有從類A那里繼承下來的屬性與方法,還可以有自己新定義的屬性和方法.繼承來的屬性和方法盡管是隱式的,但仍是類C的屬性和方法.繼承是在一些比較一般的類的基礎(chǔ)上構(gòu)造,建立和擴(kuò)充新類的最有效的手段.
實(shí)例:父類

public class Person {
    private int age;
    private String name;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }

    public Person() {
        System.out.println("Person init");
    }

    public void eat(){

    }
    public static void run(){
        System.out.println("run");
    }

}

實(shí)例:子類

public class Teacher extends Person{
    private int number;
    public Teacher() {
        System.out.println("Teacher init");
    }

    public Teacher(int age, String name, int number) {
        super(age, name);
        this.number = number;

    }
@Override
    public void eat() {
        super.eat();
        System.out.println(getName());
    }
    public static void run(){
        System.out.println( "teacher run");
    }

}

例子:使用類

public class Main {

    public static void main(String[] args) {
    // write your code here
        Teacher teacher = new Teacher(18,"老師",99);
        teacher.eat();
        Teacher.run();
        System.out.println(teacher.haha);
    }
}

繼承的關(guān)鍵字extends
類的繼承是通過關(guān)鍵字extends來實(shí)現(xiàn),類只能單一繼承 子類中就是繼承父類里的變量和方法 父類的構(gòu)造凼數(shù)沒有被繼承,這里所說的意思是指在實(shí)例化子類的對(duì)象時(shí),在new后面不能調(diào)用父類的構(gòu)造凼數(shù),但是可以在子類的構(gòu)造凼數(shù)里使用super來調(diào)用父類的構(gòu)造凼數(shù),如果沒有寫super這句調(diào)用,子類會(huì)自動(dòng)調(diào)用父類無參的構(gòu)造凼數(shù)(但要確保無參構(gòu)造凼數(shù)存在,否則會(huì)出錯(cuò)) 可以new一個(gè)子類的對(duì)象賦給一個(gè)父類的變量,當(dāng)通過這個(gè)父類的變量執(zhí)行方法時(shí),其實(shí)是執(zhí)行的子類的方法

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

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

  • 一、繼承 1. 概述 繼承是面向?qū)ο蟮闹匾卣髦?,?dāng)多個(gè)類中存在相同的屬性和行為時(shí),將這些內(nèi)容抽取到單獨(dú)一個(gè)類中...
    陳凱冰閱讀 407評(píng)論 0 2
  • 一、繼承 概述繼承是面向?qū)ο蟮闹匾卣髦?,?dāng)多個(gè)類中存在相同的屬性和行為時(shí),將這些內(nèi)容抽取到單獨(dú)一個(gè)類中,那多個(gè)...
    java部落閱讀 1,015評(píng)論 0 0
  • 父類 static 塊 1 執(zhí)行 父類 靜態(tài)成員staticSam1初始化 父類 靜態(tài)成員staticSam2初始...
    YCix閱讀 1,399評(píng)論 0 0
  • 如果文章對(duì)你有所幫助,請(qǐng)點(diǎn)喜歡并關(guān)注,這將是我最大的動(dòng)力,謝謝 繼承 為什么要繼承 說到OOP(面向?qū)ο?的特點(diǎn),...
    光哥很霸氣閱讀 3,865評(píng)論 0 14
  • 15年高考大作文新鮮出爐,作為一個(gè)河北人,當(dāng)我看到這沉甸甸的全國(guó)I卷大作文時(shí)真的醉了。 新課標(biāo)全國(guó)一卷:寫一封信(...
    ee26f61b1838閱讀 327評(píng)論 0 1

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