欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java面向?qū)ο箨P(guān)鍵字extends繼承的深入講解

 更新時(shí)間:2021年08月12日 15:41:57   作者:國(guó)家一級(jí)建筑師  
繼承就是使用已定義的類作為父類,新建一個(gè)類作為子類使用extends關(guān)鍵字繼承這個(gè)類,這樣就實(shí)現(xiàn)了繼承關(guān)系,這篇文章主要給大家介紹了關(guān)于Java面向?qū)ο箨P(guān)鍵字extends繼承的相關(guān)資料,需要的朋友可以參考下

一、 問(wèn)題引出

面向?qū)ο蟮木幊趟枷胧沟么a中創(chuàng)建的類更加具體,他們都有各自的屬性,方法。有的時(shí)候一些客觀事物之前存在一些聯(lián)系,那么他們?cè)诖a中的具體類也存在一些聯(lián)系。
例如:設(shè)計(jì)一個(gè)動(dòng)物類

public class Animal {
     public String name;
     public int age;
    public Animal(String name) {
        this.name = name;
    }
     public Animal(int age) {
        this.age = age;
    }
    public void eat(){
        System.out.println(this.name+"吃東西");
    }
}

這個(gè)動(dòng)物類有自己的name,age屬性和eat方法

我們又想創(chuàng)建一個(gè)貓類和狗類

class cat {
    public  String name;
    public  int age;
    public cat(String name) {
        this.name = name;
    }
    public cat(int age) {
        this.age = age;
    }
    public void eat(){
        System.out.println(this.name+"吃飯");
    }
}
class dog{
    public  String name;
    public int age;

    public dog(int age) {
        this.age = age;
    }

    public dog(String name) {
        this.name = name;
    }
    public  void  eat(){
        System.out.println(this.name+"干飯");
    }
}

由于大家都是碳基生物,你要吃飯我也要吃飯,你有名字我也有名字,也都有自己的年齡,我們?cè)趧?chuàng)建其他類的時(shí)候還需要在寫一遍他們的屬性name,age,和方法eat。并且,從邏輯上來(lái)說(shuō)貓和狗都屬于動(dòng)物。這就造成了大量重復(fù)的代碼,那有沒(méi)有什么辦法能讓我不用把這些屬性。方法在寫一遍呢?

繼承:我來(lái)啦?。?!

繼承作為面向?qū)ο缶幊痰囊粋€(gè)非常重要的關(guān)鍵字,在C++,和Java當(dāng)中都可以使用它來(lái)減少代碼冗余。顧名思義,它可以讓一個(gè)子類繼承另一個(gè)父類,就像兒子繼承爸爸的財(cái)產(chǎn)一樣,繼承后的子類可以擁有父類的方法,屬性,這樣每次在定義動(dòng)物類完之后,在想要定義狗或者貓類的時(shí)候就不用再把多余的代碼寫一遍了。我們來(lái)看看效果。

二、繼承extends

2.1 繼承的用法

子類extends父類即可

class cat extends animal{
    public cat(String name) {
        super(name);
    }
    public cat(int age){
        super(age);
    }
    public  void catchMouce(){
        System.out.println(this.name+"抓老鼠");
    }
}
class dog extends animal{
    public dog(String name) {
        super(name);
    }

    public dog(int age) {
        super(age);
    }
    public  void defence(){
        System.out.println(this.name+"看家");
    }
}


在上面的代碼中,cat,dog被稱為子類、派生類,而animal被稱為父類或者超類,extends英文意思為擴(kuò)展,這里可以理解成繼承,例如我們寫的cat類有了抓老鼠的方法,dog類有了看家的方法。繼承可以讓子類擁有父類public修飾的屬性和方法,cat、dog類就繼承了animal類的name、age屬性以及eat方法。

2.2 基本語(yǔ)法

使用 extends 指定父類.

子類會(huì)繼承父類的所有 public 的字段和方法.

對(duì)于父類的 private 的字段和方法, 子類中是無(wú)法訪問(wèn)的.

子類的實(shí)例中, 也包含著父類的實(shí)例. 可以使用 super 關(guān)鍵字得到父類實(shí)例的引用

子類繼承父類之后,還可以聲明自己特有的屬性和方法,實(shí)現(xiàn)功能的拓展。

2.3繼承的好處

1:減少代碼的冗余,提高復(fù)用性。

2:便于功能的拓展

3:為多態(tài)提供了前提。

2.4繼承性

Java各種類互相繼承的屬性稱作繼承性,繼承性有一些規(guī)定。

1:一個(gè)類可以被多個(gè)子類繼承。

2:Java的單繼承性:一個(gè)子類只能繼承一個(gè)父類。比如一個(gè)兒子只能有一個(gè)親爸爸,一個(gè)爸爸可以有好幾個(gè)兒子。在C++,和python中支持多繼承

3:如果一個(gè)類沒(méi)有說(shuō)明一個(gè)類的父類的話,那么此類繼承于java.lang.Object類

4:所以的類(除了java.lang.Object)都間接或直接的繼承java.lang.Object類。那么就意味這所有的類都具有java.lang.Object類聲明的功能。

總結(jié)

到此這篇關(guān)于Java面向?qū)ο箨P(guān)鍵字extends繼承的文章就介紹到這了,更多相關(guān)Java關(guān)鍵字extends繼承內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring中通過(guò)ApplicationContext getBean獲取注入對(duì)象的方法實(shí)例

    spring中通過(guò)ApplicationContext getBean獲取注入對(duì)象的方法實(shí)例

    今天小編就為大家分享一篇關(guān)于spring中通過(guò)ApplicationContext getBean獲取注入對(duì)象的方法實(shí)例,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03
  • Java并發(fā)編程總結(jié)——慎用CAS詳解

    Java并發(fā)編程總結(jié)——慎用CAS詳解

    下面小編就為大家?guī)?lái)一篇Java并發(fā)編程總結(jié)——慎用CAS詳解。小編覺(jué)得挺不錯(cuò)的, 現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-06-06
  • JAVA多線程Thread和Runnable的實(shí)現(xiàn)

    JAVA多線程Thread和Runnable的實(shí)現(xiàn)

    java中實(shí)現(xiàn)多線程有兩種方法:一種是繼承Thread類,另一種是實(shí)現(xiàn)Runnable接口。
    2013-03-03
  • Java性能的十一個(gè)用法分享

    Java性能的十一個(gè)用法分享

    這篇文章主要介紹了Java性能的十一個(gè)用法,需要的朋友可以參考下
    2014-10-10
  • java中stream去重的幾種方式舉例

    java中stream去重的幾種方式舉例

    Stream流是數(shù)據(jù)渠道,用于操作數(shù)據(jù)源(集合、數(shù)組等)所生成的元素序列,這篇文章主要給大家介紹了關(guān)于java中stream去重的幾種方式,需要的朋友可以參考下
    2023-07-07
  • Java VisualVM監(jiān)控遠(yuǎn)程JVM(詳解)

    Java VisualVM監(jiān)控遠(yuǎn)程JVM(詳解)

    下面小編就為大家?guī)?lái)一篇Java VisualVM監(jiān)控遠(yuǎn)程JVM(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-10-10
  • java條件語(yǔ)句示例詳解

    java條件語(yǔ)句示例詳解

    本文給大家介紹java條件語(yǔ)句,Java 中的條件語(yǔ)句允許程序根據(jù)條件的不同執(zhí)行不同的代碼塊,一個(gè) if 語(yǔ)句包含一個(gè)布爾表達(dá)式和一條或多條語(yǔ)句,本文結(jié)合示例代碼給大家講解的非常詳細(xì),需要的朋友可以參考下
    2023-05-05
  • SpringBoot整合Echarts繪制靜態(tài)數(shù)據(jù)柱狀圖和餅圖

    SpringBoot整合Echarts繪制靜態(tài)數(shù)據(jù)柱狀圖和餅圖

    這篇文章給大家介紹了SpringBoot整合Echarts繪制靜態(tài)數(shù)據(jù)柱狀圖和餅圖,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下
    2024-03-03
  • Spring Security自定義登錄原理及實(shí)現(xiàn)詳解

    Spring Security自定義登錄原理及實(shí)現(xiàn)詳解

    這篇文章主要介紹了Spring Security自定義登錄原理及實(shí)現(xiàn)詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 詳解java調(diào)用存儲(chǔ)過(guò)程并封裝成map

    詳解java調(diào)用存儲(chǔ)過(guò)程并封裝成map

    這篇文章主要介紹了詳解java調(diào)用存儲(chǔ)過(guò)程并封裝成map的相關(guān)資料,希望通過(guò)本文能幫助到大家實(shí)現(xiàn)這樣的功能,需要的朋友可以參考下
    2017-09-09

最新評(píng)論