激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

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

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
主站蜘蛛池模板: 美国一级免费视频 | 免费视频一区 | 色妇视频| 三级国产三级在线 | 国产国语毛片 | 久久狠狠高潮亚洲精品 | 91成人免费版 | 成熟女人特级毛片www免费 | 美女黄视频在线观看 | 操嫩草| 免费亚洲视频在线观看 | 亚洲天堂岛国片 | 中文字幕网在线 | 欧美一级黄色录像片 | 亚洲爱爱网站 | 成人国产精品久久 | 美女视频黄视大全视频免费网址 | 99精品国产在热久久婷婷 | 欧美囗交| 国产亚洲精久久久久久蜜臀 | 成人做爽爽爽爽免费国产软件 | 视频一区二区在线观看 | 一区二区三区四区在线 | 欧美人的天堂一区二区三区 | 日韩黄色精品视频 | 久久99精品久久久久久秒播放器 | 粉嫩粉嫩一区二区三区在线播放 | 中国国语毛片免费观看视频 | 爱操视频 | 欧美成人精品一级 | 日韩字幕在线观看 | 欧美偷拍一区二区 | 最新毛片在线观看 | 国产88久久久国产精品免费二区 | 伊人999| 午夜精品久久久久久中宇 | 久久中文字幕在线观看 | chinesehdxxxx无套| 亚洲精品一区二区三区免 | 黄色高清免费网站 | 午夜视频在线 |