亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

java教程之java繼承示例詳解

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

什么是繼承(extends)?

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

ExtendsDemo1.java

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

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

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

class Truck extends Car {       //貨車(chē)
    String packingBox;          //貨箱
}

繼承的好處

1. 提高了代碼的重用性

2. 讓類(lèi)和類(lèi)之間產(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代表本類(lèi)引用, super代表父類(lèi)引用

3. 當(dāng)子類(lèi)和父類(lèi)出現(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ì)從父類(lèi)繼承過(guò)來(lái)的方法進(jìn)行重寫(xiě)(Override)

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

OverrideDemo1.java

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

/* 怎么對(duì)從父類(lèi)繼承過(guò)來(lái)的方法進(jìn)行重寫(xiě)(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)重寫(xiě)操作,由編譯器檢查,如果達(dá)不到重寫(xiě)的條件,就會(huì)報(bào)錯(cuò)。一定程度上增加了代碼的安全性
和健壯性
    public void speak() {
        super.speak();
        System.out.println("SubClass: I am excellent~~~");
    }  
}

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

OverrideDemo2.java

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

/* 子類(lèi)中不允許出現(xiàn)與父類(lèi)同名同參但是不同返回類(lèi)型的方法
 * 出錯(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. 子類(lèi)重寫(xiě)父類(lèi)的方法的訪問(wèn)權(quán)限要大于或者等于父類(lèi)中被重寫(xiě)的方法

OverrideDemo3.java

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

/* 子類(lèi)重寫(xiě)父類(lèi)的方法的訪問(wèn)權(quán)限要大于或者等于父類(lèi)方法的訪問(wè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() {            //把這里的訪問(wèn)權(quán)限改為public即可

    }  
}

訪問(wèn)控制符

訪問(wèn)控制符有:public, protected, default, private

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

相關(guān)文章

  • SpringBoot基于數(shù)據(jù)庫(kù)實(shí)現(xiàn)定時(shí)任務(wù)過(guò)程解析

    SpringBoot基于數(shù)據(jù)庫(kù)實(shí)現(xiàn)定時(shí)任務(wù)過(guò)程解析

    這篇文章主要介紹了SpringBoot基于數(shù)據(jù)庫(kù)實(shí)現(xiàn)定時(shí)任務(wù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Spring事務(wù)失效的幾種原因

    Spring事務(wù)失效的幾種原因

    在日常編碼過(guò)程中常常涉及到事務(wù),在前兩天看到一篇文章提到了Spring事務(wù),那么在此總結(jié)下在Spring環(huán)境下事務(wù)失效的幾種原因.
    2020-09-09
  • 簡(jiǎn)單實(shí)現(xiàn)Java web服務(wù)器

    簡(jiǎn)單實(shí)現(xiàn)Java web服務(wù)器

    這篇文章主要為大家詳細(xì)介紹了簡(jiǎn)單實(shí)現(xiàn)Java web服務(wù)器的詳細(xì)步驟,感興趣的小伙伴們可以參考一下
    2016-06-06
  • 徹底解決Spring mvc中時(shí)間的轉(zhuǎn)換和序列化等問(wèn)題

    徹底解決Spring mvc中時(shí)間的轉(zhuǎn)換和序列化等問(wèn)題

    這篇文章主要介紹了徹底解決Spring mvc中時(shí)間的轉(zhuǎn)換和序列化等問(wèn)題,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Centos下SpringBoot項(xiàng)目啟動(dòng)與停止腳本的方法

    Centos下SpringBoot項(xiàng)目啟動(dòng)與停止腳本的方法

    這篇文章主要介紹了Centos下SpringBoot項(xiàng)目啟動(dòng)與停止腳本的方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-11-11
  • 使用Springboot根據(jù)配置文件動(dòng)態(tài)注入接口實(shí)現(xiàn)類(lèi)

    使用Springboot根據(jù)配置文件動(dòng)態(tài)注入接口實(shí)現(xiàn)類(lèi)

    這篇文章主要介紹了使用Springboot根據(jù)配置文件動(dòng)態(tài)注入接口實(shí)現(xiàn)類(lèi),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • 解讀JAVA中的位運(yùn)算操作

    解讀JAVA中的位運(yùn)算操作

    這篇文章主要介紹了JAVA中的位運(yùn)算操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • java中如何對(duì)Map的key順序排序

    java中如何對(duì)Map的key順序排序

    大家都知道Map排序的方式有很多種,下面這篇文章主要給大家介紹了關(guān)于java中如何對(duì)Map的key順序排序的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-11-11
  • Spring activiti如何實(shí)現(xiàn)指定任務(wù)處理者

    Spring activiti如何實(shí)現(xiàn)指定任務(wù)處理者

    這篇文章主要介紹了Spring activiti如何實(shí)現(xiàn)指定任務(wù)處理者,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-11-11
  • java由JABXContext注解讀取xml配置文件方式

    java由JABXContext注解讀取xml配置文件方式

    這篇文章主要介紹了java由JABXContext注解讀取xml配置文件方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06

最新評(píng)論