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

Java面向對象之繼承的概念詳解

 更新時間:2023年04月28日 11:00:08   作者:黑洞曉威  
這篇文章主要介紹了Java面向對象之繼承的概念詳解,Java是一種面向對象的編程語言,繼承是實現(xiàn)面向對象編程的基礎之一。通過繼承,我們可以使代碼更具可讀性、可重用性和可維護性,從而提高程序的效率和可靠性,需要的朋友可以參考下

1. 繼承

1.1 繼承的實現(xiàn)

  • 繼承的概念

繼承是面向對象三大特征之一,可以使得子類具有父類的屬性和方法,還可以在子類中重新定義,以及追加屬性和方法

  • 實現(xiàn)繼承的格式

繼承通過extends實現(xiàn)格式:class 子類 extends 父類 { } 舉例:class Dog extends Animal { }

  • 繼承帶來的好處

繼承可以讓類與類之間產生關系,子父類關系,產生子父類后,子類則可以使用父類中非私有的成員。

  • 示例代碼
public class Fu {
    public void show() {
        System.out.println("show方法被調用");
    }
}
public class Zi extends Fu {
    public void method() {
        System.out.println("method方法被調用");
    }
}
public class Demo {
    public static void main(String[] args) {
        //創(chuàng)建對象,調用方法
        Fu f = new Fu();
        f.show();

        Zi z = new Zi();
        z.method();
        z.show();
    }
}

1.2 繼承的好處和弊端

  • 繼承好處
    • 提高了代碼的復用性(多個類相同的成員可以放到同一個類中)
    • 提高了代碼的維護性(如果方法的代碼需要修改,修改一處即可)
  • 繼承弊端
    • 繼承讓類與類之間產生了關系,類的耦合性增強了,當父類發(fā)生變化時子類實現(xiàn)也不得不跟著變化,削弱了子類的獨立性
  • 繼承的應用場景:
    • 使用繼承,需要考慮類與類之間是否存在is…a的關系,不能盲目使用繼承
      • is…a的關系:誰是誰的一種,例如:老師和學生是人的一種,那人就是父類,學生和老師就是子類

1.3. Java中繼承的特點

  • Java中繼承的特點
  1. Java中類只支持單繼承,不支持多繼承
    • 錯誤范例:class A extends B, C { }
  2. Java中類支持多層繼承
  • 多層繼承示例代碼:
public class Granddad {

    public void drink() {
        System.out.println("爺爺愛喝酒");
    }

}

public class Father extends Granddad {

    public void smoke() {
        System.out.println("爸爸愛抽煙");
    }

}

public class Mother {

    public void dance() {
        System.out.println("媽媽愛跳舞");
    }

}
public class Son extends Father {
	// 此時,Son類中就同時擁有drink方法以及smoke方法
}

2. 繼承中的成員訪問特點

2.1 繼承中變量的訪問特點

在子類方法中訪問一個變量,采用的是就近原則。

  • 子類局部范圍找
  • 子類成員范圍找
  • 父類成員范圍找
  • 如果都沒有就報錯(不考慮父親的父親…)

示例代碼

class Fu {
    int num = 10;
}
class Zi {
    int num = 20;
    public void show(){
        int num = 30;
        System.out.println(num);
    }
}
public class Demo1 {
    public static void main(String[] args) {
        Zi z = new Zi();
        z.show();	// 輸出show方法中的局部變量30
    }
}

2.2 super

this&super關鍵字:

  • this:代表本類對象的引用
  • super:代表父類存儲空間的標識(可以理解為父類對象引用)
  • this和super的使用分別
    • 成員變量:
      • this.成員變量 - 訪問本類成員變量
      • super.成員變量 - 訪問父類成員變量
    • 成員方法:
      • this.成員方法 - 訪問本類成員方法
      • super.成員方法 - 訪問父類成員方法
    • 構造方法:
      • this(…) - 訪問本類構造方法
      • super(…) - 訪問父類構造方法

2.3 方法重寫

1、方法重寫概念 子類出現(xiàn)了和父類中一模一樣的方法聲明(方法名一樣,參數(shù)列表也必須一樣)

2、方法重寫的應用場景 當子類需要父類的功能,而功能主體子類有自己特有內容時,可以重寫父類中的方法,這樣,即沿襲了父類的功能,又定義了子類特有的內容

3、Override注解 用來檢測當前的方法,是否是重寫的方法,起到【校驗】的作用

2.4 方法重寫的注意事項

方法重寫的注意事項

  • 私有方法不能被重寫(父類私有成員子類是不能繼承的)
  • 子類方法訪問權限不能更低(public > 默認 > 私有)
  • 靜態(tài)方法不能被重寫,如果子類也有相同的方法,并不是重寫的父類的方法

示例代碼

public class Fu {
    private void show() {
        System.out.println("Fu中show()方法被調用");
    }

    void method() {
        System.out.println("Fu中method()方法被調用");
    }
}

public class Zi extends Fu {

    /* 編譯【出錯】,子類不能重寫父類私有的方法*/
    @Override
    private void show() {
        System.out.println("Zi中show()方法被調用");
    }
   
    /* 編譯【出錯】,子類重寫父類方法的時候,訪問權限需要大于等于父類 */
    @Override
    private void method() {
        System.out.println("Zi中method()方法被調用");
    }

    /* 編譯【通過】,子類重寫父類方法的時候,訪問權限需要大于等于父類 */
    @Override
    public void method() {
        System.out.println("Zi中method()方法被調用");
    }
}

到此這篇關于Java面向對象之繼承的概念詳解的文章就介紹到這了,更多相關Java面向對象的繼承內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java簡單實現(xiàn)動態(tài)代理模式過程解析

    Java簡單實現(xiàn)動態(tài)代理模式過程解析

    這篇文章主要介紹了Java動態(tài)代理模式簡單案例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Java游戲俄羅斯方塊的實現(xiàn)實例

    Java游戲俄羅斯方塊的實現(xiàn)實例

    這篇文章主要介紹了Java游戲俄羅斯方塊的實現(xiàn)實例的相關資料,這里實現(xiàn)簡單的俄羅斯方塊幫助大家學習理解基礎知識,需要的朋友可以參考下
    2017-08-08
  • IntelliJ IDEA 熱部署插件JRebel的使用

    IntelliJ IDEA 熱部署插件JRebel的使用

    這篇文章主要介紹了IntelliJ IDEA 熱部署插件JRebel的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-12-12
  • Java將Date日期類型字段轉換成json字符串的方法

    Java將Date日期類型字段轉換成json字符串的方法

    這篇文章主要給大家介紹了關于Java將Date日期類型字段轉換成json字符串的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-02-02
  • java 流操作對文件的分割和合并的實例詳解

    java 流操作對文件的分割和合并的實例詳解

    這篇文章主要介紹了java 流操作對文件的分割和合并的實例詳解的相關資料,希望通過本文能幫助到大家,讓大家理解掌握這部分內容,需要的朋友可以參考下
    2017-10-10
  • 基于SpringMVC攔截器實現(xiàn)接口耗時監(jiān)控功能

    基于SpringMVC攔截器實現(xiàn)接口耗時監(jiān)控功能

    本文呢主要介紹了基于SpringMVC攔截器實現(xiàn)的接口耗時監(jiān)控功能,統(tǒng)計接口的耗時情況屬于一個可以復用的功能點,因此這里直接使用 SpringMVC的HandlerInterceptor攔截器來實現(xiàn),需要的朋友可以參考下
    2024-02-02
  • Java多線程同步器代碼詳解

    Java多線程同步器代碼詳解

    這篇文章主要介紹了Java多線程同步器代碼詳解,文章分別介紹了是CountDownLatch,Semaphore,Barrier和Exchanger以及其相關代碼示例,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • java多線程文件下載器的實現(xiàn)

    java多線程文件下載器的實現(xiàn)

    本文主要介紹了java多線程文件下載器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • Java圖片上傳實現(xiàn)代碼

    Java圖片上傳實現(xiàn)代碼

    這篇文章主要為大家詳細介紹了Java圖片上傳實現(xiàn)代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-05-05
  • SpringMVC 參數(shù)綁定相關知識總結

    SpringMVC 參數(shù)綁定相關知識總結

    這篇文章主要介紹了SpringMVC 參數(shù)綁定相關知識總結,幫助大家更好的理解和學習使用SpringMVC,感興趣的朋友可以了解下
    2021-03-03

最新評論