一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|JAVA教程|ASP教程|

服務器之家 - 編程語言 - JAVA教程 - java教程之java繼承示例詳解

java教程之java繼承示例詳解

2019-11-17 14:19java教程網 JAVA教程

這篇文章主要介紹了java繼承示例詳解,需要的朋友可以參考下

什么是繼承(extends)?

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

ExtendsDemo1.java

復制代碼代碼如下:

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

 

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

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

 

繼承的好處

1. 提高了代碼的重用性

2. 讓類和類之間產生了關系, 為多態創造了條件。

繼承(extends)的格式 

復制代碼代碼如下:

class SubClass extends SuperClass {
 //執行語句;


super關鍵字

 

1. super關鍵字和this的用法相同

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

3. 當子類和父類出現同名成員的時候, 可以用super 和 this進行區分

SuperDemo.java

復制代碼代碼如下:

/* super的用法
 * 輸出結果:
 * 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);
    }   
}

 

對從父類繼承過來的方法進行重寫(Override)

1. 當子類中出現與父類一模一樣的方法(返回值, 函數名, 形參)時, 會出現重寫(Override)操作.

OverrideDemo1.java

復制代碼代碼如下:

/* 怎么對從父類繼承過來的方法進行重寫(Override)
 * 輸出結果:
 * 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表示下面出現的方法會出現重寫操作,由編譯器檢查,如果達不到重寫的條件,就會報錯。一定程度上增加了代碼的安全性
和健壯性
    public void speak() {
        super.speak();
        System.out.println("SubClass: I am excellent~~~");
    }   
}

 

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

OverrideDemo2.java

復制代碼代碼如下:

/* 子類中不允許出現與父類同名同參但是不同返回類型的方法 
 * 出錯信息:
 * 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. 子類重寫父類的方法的訪問權限要大于或者等于父類中被重寫的方法

OverrideDemo3.java

 

復制代碼代碼如下:

/* 子類重寫父類的方法的訪問權限要大于或者等于父類方法的訪問權限
 * 出錯信息:
 * 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() {            //把這里的訪問權限改為public即可

    }   
}

 

訪問控制符

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

有些需要一點包(package)的知識,所以等到講包的時候再說.

延伸 · 閱讀

精彩推薦
  • JAVA教程Java 文件解壓縮實現代碼

    Java 文件解壓縮實現代碼

    這篇文章主要介紹了Java 文件解壓縮實現代碼,有需要的朋友可以參考一下 ...

    java代碼網1742019-10-25
  • JAVA教程java清除html轉義字符

    java清除html轉義字符

    這篇文章主要介紹了一個靜態文件處理的一些便捷服務,包括 java清除html轉義字符,清除html代碼,從style樣式中讀取CSS的屬性,將字符串截取指定長度,涉...

    java開發網2042019-11-01
  • JAVA教程封裝jndi操作ldap服務器的工具類

    封裝jndi操作ldap服務器的工具類

    這篇文章主要介紹了封裝JNDI操作LDAP服務器的工具類,使用者只需要會使用List,Map 數據結構,大家參考使用吧 ...

    java教程網4022019-11-04
  • JAVA教程java操作mongodb示例分享

    java操作mongodb示例分享

    這篇文章主要介紹了java操作mongodb示例,實現了簡單的條件查詢和復雜的條件查詢,需要的朋友可以參考下 ...

    java教程網3212019-11-11
  • JAVA教程java多線程編程之線程的生命周期

    java多線程編程之線程的生命周期

    線程要經歷開始(等待)、運行、掛起和停止四種不同的狀態。這四種狀態都可以通過Thread類中的方法進行控制。下面給出了Thread類中和這四種狀態相關的...

    java教程網1882019-11-04
  • JAVA教程解決dubbo錯誤ip及ip亂入問題的方法

    解決dubbo錯誤ip及ip亂入問題的方法

    今天小編就為大家分享一篇關于解決dubbo錯誤ip及ip亂入問題的方法,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨...

    雙斜杠少年5212019-06-24
  • JAVA教程java字符串拼接與性能分析詳解

    java字符串拼接與性能分析詳解

    在JAVA中拼接兩個字符串的最簡便的方式就是使用操作符”+”。如果你用”+”來連接固定長度的字符串,可能性能上會稍受影響,但是如果你是在循環中來...

    java技術網2132019-10-27
  • JAVA教程java實現文本文件刪除空行的示例分享

    java實現文本文件刪除空行的示例分享

    這篇文章主要介紹了java實現文本文件刪除空行的示例,需要的朋友可以參考下 ...

    java教程網2352019-11-17
主站蜘蛛池模板: 亚洲另类激情 | 99久久综合 | 国产精品欧美亚洲韩国日本99 | 91免费永久在线地址 | 香蕉久久久久久狠狠色 | 四虎现在的网址入口2022 | 亚洲瑟瑟网 | 成人免费观看网欧美片 | 精品日本三级在线观看视频 | 精品一区二区三区五区六区七区 | 羞羞影院午夜男女爽爽影院网站 | 日韩成人一区ftp在线播放 | 五月激激激综合网色播免费 | 国产最新精品视频 | 国产图色| 亚洲国产精品嫩草影院永久 | 亚洲网视频| haodiaocao几万部精彩视频 | 亚洲另类第一页 | 免费在线观看网址入口 | 波多野结中文字幕在线69视频 | 女人麻豆国产香蕉久久精品 | 肉文np高h| 午夜私人影院在线观看 视频 | 免费网站直接进入 | 欧美精品v日韩精品v国产精品 | 色老板视频在线观看 | 欧美午夜网站 | 日本xx高清视频免费观看 | 艾秋麻豆果冻传媒老狼仙踪林 | 色噜噜亚洲男人的天堂www | 国产成人精品一区二三区在线观看 | 欧美国产合集在线视频 | 我的好妈妈7中字在线观看韩国 | 欧美国产日产精品免费视频 | 99视频都是精品热在线播放 | 华人亚洲欧美精品国产 | 日韩在线视频免费观看 | 国产人成激情视频在线观看 | 欧美精品黑人巨大在线播放 | 亚洲精品综合 |