最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java教程之java繼承示例詳解

 更新時(shí)間:2014年04月03日 11:57:52   作者:  
這篇文章主要介紹了java繼承示例詳解,需要的朋友可以參考下

什么是繼承(extends)?

繼承是:新定義的類是從已有的類中獲取屬性和方法的現(xiàn)象。 這個(gè)已有的類叫做父類, 從這個(gè)父類獲取屬性和方法的類叫做子類。

ExtendsDemo1.java

復(fù)制代碼 代碼如下:

/*什么是繼承*/
public class ExtendsDemo1 {
    public static void main(String[] args) {
        Truck t = new Truck();
        t.size = 100;           //不建議這么寫。初始化成員變量最好使用構(gòu)造方法,或者提供set(), get()接口.
                                //貨車類的一個(gè)實(shí)例t從汽車類從繼承了size, color屬性。
                                //而貨車比汽車多一個(gè)貨箱
    }  
}

class Car {                     //汽車
    int size;                   //車體大小
    String color;               //顏色
}

class Truck extends Car {       //貨車
    String packingBox;          //貨箱
}

繼承的好處

1. 提高了代碼的重用性

2. 讓類和類之間產(chǎn)生了關(guān)系, 為多態(tài)創(chuàng)造了條件。

繼承(extends)的格式 

復(fù)制代碼 代碼如下:

class SubClass extends SuperClass {
 //執(zhí)行語(yǔ)句;
}


super關(guān)鍵字

1. super關(guān)鍵字和this的用法相同

2. this代表本類引用, super代表父類引用

3. 當(dāng)子類和父類出現(xiàn)同名成員的時(shí)候, 可以用super 和 this進(jìn)行區(qū)分

SuperDemo.java

復(fù)制代碼 代碼如下:

/* super的用法
 * 輸出結(jié)果:
 * super.i = 10, this.i = 20
 */
public class SuperDemo {
    public static void main(String[] args) {
        new SubClass().showMessage();
    }  
}

class SuperClass {
    int i = 10;
}

class SubClass extends SuperClass {
    int i = 20;

    public void showMessage() {
        System.out.printf("super.i = %d, this.i = %d\n", super.i, this.i);
    }  
}

對(duì)從父類繼承過(guò)來(lái)的方法進(jìn)行重寫(Override)

1. 當(dāng)子類中出現(xiàn)與父類一模一樣的方法(返回值, 函數(shù)名, 形參)時(shí), 會(huì)出現(xiàn)重寫(Override)操作.

OverrideDemo1.java

復(fù)制代碼 代碼如下:

/* 怎么對(duì)從父類繼承過(guò)來(lái)的方法進(jìn)行重寫(Override)
 * 輸出結(jié)果:
 * SuperClass: I am good~
 * SubClass: I am excellent~~~
 */
public class OverrideDemo1 {
    public static void main(String[] args) {
        SubClass sc = new SubClass();
        sc.speak();
    }  
}

class SuperClass {
    public void speak() {
        System.out.println("SuperClass: I am good~");
    }  
}

class SubClass extends SuperClass {
    @Override                   //@Override表示下面出現(xiàn)的方法會(huì)出現(xiàn)重寫操作,由編譯器檢查,如果達(dá)不到重寫的條件,就會(huì)報(bào)錯(cuò)。一定程度上增加了代碼的安全性
和健壯性
    public void speak() {
        super.speak();
        System.out.println("SubClass: I am excellent~~~");
    }  
}

2. 在對(duì)父類方法進(jìn)行重寫(Override)操作的時(shí)候,子類不允許出現(xiàn)與父類同名同參但是不同返回類型的方法.

OverrideDemo2.java

復(fù)制代碼 代碼如下:

/* 子類中不允許出現(xiàn)與父類同名同參但是不同返回類型的方法
 * 出錯(cuò)信息:
 * OverrideDemo.java:20: error: f() in SubClass cannot override f() in SuperClass
 *  public int f() {
 *                 ^
 *                   return type int is not compatible with void
 *                   OverrideDemo.java:19: error: method does not override or implement a method from a supertype
 *                      @Override
 *                          ^
 *                          2 errors
 */
public class OverrideDemo2 {
    public static void main(String[] args) {

    }  
}

class SuperClass {
    public void f() {

    }  
}

class SubClass extends SuperClass {
    @Override
    public int f() {
        return 1;
    }  
}

3. 子類重寫父類的方法的訪問權(quán)限要大于或者等于父類中被重寫的方法

OverrideDemo3.java

復(fù)制代碼 代碼如下:

/* 子類重寫父類的方法的訪問權(quán)限要大于或者等于父類方法的訪問權(quán)限
 * 出錯(cuò)信息:
 * OverrideDemo.java:18: error: f() in SubClass cannot override f() in SuperClass
 *  protected void f() {
 *                     ^
 *                       attempting to assign weaker access privileges; was public
 *                       1 error
 */

public class OverrideDemo3 {
    public static void main(String[] args) {

    }  
}

class SuperClass {
    public void f() {
    }  
}

class SubClass extends SuperClass {
    @Override
    protected void f() {            //把這里的訪問權(quán)限改為public即可

    }  
}

訪問控制符

訪問控制符有:public, protected, default, private

有些需要一點(diǎn)包(package)的知識(shí),所以等到講包的時(shí)候再說(shuō).

相關(guān)文章

  • SpringBoot實(shí)現(xiàn)優(yōu)雅停機(jī)的三種方式

    SpringBoot實(shí)現(xiàn)優(yōu)雅停機(jī)的三種方式

    優(yōu)雅停機(jī)(Graceful?Shutdown)是指應(yīng)用在接收到停止信號(hào)后,能夠妥善處理現(xiàn)有請(qǐng)求、釋放資源,然后再退出的過(guò)程,本文將詳細(xì)介紹SpringBoot中實(shí)現(xiàn)優(yōu)雅停機(jī)的三種方式,需要的朋友可以參考下
    2025-04-04
  • Java使用arthas修改日志級(jí)別詳解

    Java使用arthas修改日志級(jí)別詳解

    在我們線上環(huán)境中,一般不會(huì)開啟debug級(jí)別的日志,為了提高性能?info和warning級(jí)別的日志也一般不會(huì)打印出來(lái),那么如果遇到線上問題,除了使用arthas定位問題,想通過(guò)查詢?nèi)罩緛?lái)實(shí)現(xiàn)問題定位,如何查看logger信息,更新logger?level呢,下面我們來(lái)了解arthas修改日志級(jí)別
    2022-06-06
  • EasyExcel自定義導(dǎo)出列和順序?qū)嵗a

    EasyExcel自定義導(dǎo)出列和順序?qū)嵗a

    這篇文章主要給大家介紹了關(guān)于EasyExcel自定義導(dǎo)出列和順序的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-07-07
  • spring boot 開發(fā)soap webservice的實(shí)現(xiàn)代碼

    spring boot 開發(fā)soap webservice的實(shí)現(xiàn)代碼

    這篇文章主要介紹了spring boot 開發(fā)soap webservice的實(shí)現(xiàn)代碼,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-01-01
  • Spring中依賴注入(DI)幾種方式解讀

    Spring中依賴注入(DI)幾種方式解讀

    這篇文章主要介紹了Spring中依賴注入(DI)幾種方式解讀,構(gòu)造器依賴注入通過(guò)容器觸發(fā)一個(gè)類的構(gòu)造器來(lái)實(shí)現(xiàn)的,該類有一系列參數(shù),每個(gè)參數(shù)代表一個(gè)對(duì)其他類的依賴,需要的朋友可以參考下
    2024-01-01
  • java中抽象類和接口的相同和不同點(diǎn)介紹

    java中抽象類和接口的相同和不同點(diǎn)介紹

    大家好,本篇文章主要講的是java中抽象類和接口的相同和不同點(diǎn)介紹,感興趣的同學(xué)趕快來(lái)看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽
    2021-12-12
  • java實(shí)現(xiàn)二維碼生成的幾個(gè)方法(推薦)

    java實(shí)現(xiàn)二維碼生成的幾個(gè)方法(推薦)

    本篇文章主要介紹了java實(shí)現(xiàn)二維碼生成的幾個(gè)方法(推薦),具有一定的參考價(jià)值,有興趣的可以了解一下。
    2016-12-12
  • Spring Security實(shí)現(xiàn)兩周內(nèi)自動(dòng)登錄

    Spring Security實(shí)現(xiàn)兩周內(nèi)自動(dòng)登錄"記住我"功能

    登錄過(guò)程中經(jīng)常使用的“記住我”功能,也就是我們經(jīng)常會(huì)在各種網(wǎng)站登陸時(shí)見到的"兩周內(nèi)免登錄",“三天內(nèi)免登錄”的功能。今天小編給大家分享基于Spring Security實(shí)現(xiàn)兩周內(nèi)自動(dòng)登錄"記住我"功能,感興趣的朋友一起看看吧
    2019-11-11
  • Java語(yǔ)言class類用法及泛化(詳解)

    Java語(yǔ)言class類用法及泛化(詳解)

    這篇文章主要介紹了Java語(yǔ)言class類用法及泛化(詳解),大家都知道Java程序在運(yùn)行過(guò)程中,對(duì)所有的對(duì)象今夕類型標(biāo)識(shí),也就是RTTI。這項(xiàng)信息記錄了每個(gè)對(duì)象所屬的類,需要的朋友可以參考下
    2015-07-07
  • Spring 中如何根據(jù)環(huán)境切換配置 @Profile

    Spring 中如何根據(jù)環(huán)境切換配置 @Profile

    這篇文章主要介紹了Spring中如何根據(jù)環(huán)境切換配置@Profile的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08

最新評(píng)論

洪江市| 西藏| 临泽县| 鄂托克前旗| 深州市| 绥德县| 土默特右旗| 彩票| 巨野县| 青海省| 平昌县| 天水市| 罗城| 扶余县| 青州市| 永城市| 井研县| 綦江县| 阿拉善盟| 高安市| 微山县| 嘉善县| 兴国县| 建始县| 田东县| 临颍县| 双牌县| 屯留县| 定边县| 永修县| 临猗县| 西和县| 威远县| 叙永县| 敦化市| 武宣县| 长子县| 南召县| 于田县| 怀来县| 马山县|