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

一文解析Java中的方法重寫

 更新時間:2022年07月13日 10:51:33   作者:SSS4362  
子類繼承父類后,可以在子類中書寫一個與父類同名同參的方法,從而實現(xiàn)對父類中同名同參數(shù)的方法的覆蓋,我們把這一過程叫做方法的重寫。本文將分析一下Java中的方法重寫,感興趣的可以了解一下

1.含義

子類繼承父類后,可以在子類中書寫一個與父類同名同參的方法,從而實現(xiàn)對父類中同名同參數(shù)的方法的覆蓋,我們把這一過程叫做方法的重寫(override)

2.為什么要使用方法重寫

2.1 當父類的方法滿足不了子類的需求的時候,需要在子類中對該方法進行重寫

2.2 題目與分析

例如存在一個父類Peple,子類Chinese,父類中有一個say()方法,輸出人在說話,但是我想要的時子類時候調用時輸出中國人在說話,很顯然直接調用方法不行,所以需要在子類中對say方法進行方法的重寫

2.3 示例代碼

People類

public class Peple {
    private String name;
    private String sex;
    private int age;
    private int weight;

    public Peple() {
    }

    public Peple(String name, String sex, int age, int weight) {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.weight=weight;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }
    public void say(){
        System.out.println("人在說話");
    }

}

Chinese類

public class Chinese extends Peple{
    public Chinese() {
    }
    @Override
    public void say() {
        System.out.println("中國人在說話");
    }
}

Test03類

public class Test03 {
    public static void main(String[] args) {
        Chinese c=new Chinese();
        c.say();
        //當進行方法重寫時,調用的是子類的say()方法
    }
}

2.4 示例代碼運行截圖

3.如何使用方法重寫

3.1 基本語法

@Override
權限修飾符 返回值類型 方法名(形參列表){
    //子類重寫的方法的權限修飾符的訪問權限必須大于等于父類的,但是父類不能是private
    //當父類的返回值類型為基本數(shù)據(jù)類型或者為void時,子類方法的返回值類型也應該為對應的基本數(shù)據(jù)類型或者void
  
}

3.2 具體分析

3.2.1 子類重寫的方法的訪問權限應該大于等于父類方法的訪問權限

a 示例代碼

People類

public class Peple {
    private String name;
    private String sex;
    private int age;
    private int weight;

    public Peple() {
    }

    public Peple(String name, String sex, int age, int weight) {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.weight=weight;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }
    //沒有寫訪問權限的話,默認是default訪問權限
    void say(){
        System.out.println("人在說話");
    }

}

Chinese類

public class Chinese extends Peple{
    public Chinese(){
    }
    //父類say方法的訪問權限為default,子類say方法的訪問權限為public,
    // 符合子類方法訪問權限大于等于父類方法訪問權限的要求
    @Override
    public void say() {
        System.out.println("中國人在說話");
    }
}

Test03類

public class Test03 {
    public static void main(String[] args) {
        Chinese c=new Chinese();
        c.say();
    }
}

b 示例代碼運行截圖

3.2.2 當父類方法的返回值類型為基本數(shù)據(jù)類型時,子類重寫的方法的返回值類型也為對應的基本數(shù)據(jù)類型

a 示例代碼

People類

public class Peple {
    private String name;
    private String sex;
    private int age;
    private int weight;

    public Peple() {
    }

    public Peple(String name, String sex, int age, int weight) {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.weight=weight;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }
    public double add(int a,int b){
       return a+b;
    }

}

Chinese類

public class Chinese extends Peple{
    public Chinese(){
    }
    @Override
    public double add(int a,int b) {
       return a+b+1;
    }
}

Test03類

public class Test03 {
    public static void main(String[] args) {
        Chinese c=new Chinese();
        System.out.println("求和之和再加上1的結果為: "+c.add(2, 3));
    }
}

b 示例代碼運行截圖

3.2.3 當父類方法的返回值類型為void時,子類重寫的方法的返回值類型也為void

a 示例代碼

People類

public class Peple {
    private String name;
    private String sex;
    private int age;
    private int weight;

    public Peple() {
    }

    public Peple(String name, String sex, int age, int weight) {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.weight=weight;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }
    public void eat(){
        System.out.println("人的主食一般是熟食");
    }

}

Chinese類

public class Chinese extends Peple{
    public Chinese(){
    }
    @Override
    public void eat() {
        System.out.println("中國人的主食是大米或者小麥");
    }
}

Test03類

public class Test03 {
    public static void main(String[] args) {
        Chinese c=new Chinese();
        c.eat();
    }
}

b 示例代碼運行截圖

3.2.4 當父類的方法被static修飾的時候,子類是不能重寫該方法的

a 錯誤示例代碼

People類

public class Peple {
    private String name;
    private String sex;
    private int age;
    private int weight;

    public Peple() {
    }

    public Peple(String name, String sex, int age, int weight) {
        this.name = name;
        this.sex = sex;
        this.age = age;
        this.weight=weight;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }
    public int getWeight() {
        return weight;
    }

    public void setWeight(int weight) {
        this.weight = weight;
    }
    public static void eat(){
        System.out.println("人的主食一般是熟食");
    }

}

Chinese類

public class Chinese extends Peple{
    public Chinese(){
    }
    @Override
    public void eat() {
        System.out.println("中國人的主食是大米或者小麥");
    }
}

Test03類

public class Test03 {
    public static void main(String[] args) {
        Chinese c=new Chinese();
        c.eat();
    }
}

b 示例代碼運行截圖

編譯時idea給出的錯誤提示

強制運行后給出的錯誤提示

3.3 方法重寫的一些小技巧

3.3.1 復制法

步驟

1.先直接復制(Ctrl+C)父類中需要被子類重寫的那個方法

2.粘貼(Ctrl+V)到子類中

3.修改子類中的功能,便于實現(xiàn)父類實現(xiàn)不了的需求

操作截圖展示

3.3.2 編譯器提示法

步驟

1.先在子類類體中,非方法內位置,寫入一個英文@符號

2.選中提示中的Overide/implement methods…

3.雙擊后彈出一個重寫方法選擇列表彈窗

4.根據(jù)提示選中對應的需要重寫的方法

5.點擊ok按鈕后會在子類中生成一個你選中方法的重寫方法

6.把生成的重寫方法中的自動生成的首行去掉,然后根據(jù)需求在方法體里面寫入合適的語句

操作截圖展示

3.3.3 快捷鍵法

步驟

1.把鼠標移動到重寫方法應該生成的位置

2.同時按下鍵盤上的Alt鍵和Insert鍵,

3.在彈出框中,選中Override Methods

4.雙擊后會彈出一個界面,在界面中選中需要被子類重寫的方法

5.點擊OK按鈕后會生成所需要的重寫方法

6.去掉重寫方法中自動生成的首行,然在其方法體里面寫入合適的語句

操作截圖展示

以上就是一文解析Java中的方法重寫的詳細內容,更多關于Java方法重寫的資料請關注腳本之家其它相關文章!

相關文章

  • Java語法基礎之運算符學習筆記分享

    Java語法基礎之運算符學習筆記分享

    這篇文章主要為大家分享了Java語法基礎之運算符學習筆記,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • SpringBoot集成slf4j日志配置的方法

    SpringBoot集成slf4j日志配置的方法

    本文主要介紹了SpringBoot集成slf4j日志配置的方法,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • 在SpringBoot中配置MySQL數(shù)據(jù)庫的詳細指南

    在SpringBoot中配置MySQL數(shù)據(jù)庫的詳細指南

    在 Spring Boot 中配置數(shù)據(jù)庫是一個相對簡單的過程,通常涉及到以下幾個步驟:添加數(shù)據(jù)庫驅動依賴、配置數(shù)據(jù)源屬性、以及可選的配置 JPA(如果使用),下面是小編給大家編寫的一個詳細的指南,以MySQL 數(shù)據(jù)庫為例,需要的朋友可以參考下
    2024-12-12
  • 代碼分析Spring MVC的工作原理

    代碼分析Spring MVC的工作原理

    在本篇文章里小編給大家整理了關于Spring MVC的工作原理的相關知識點以及實例代碼內容,需要的朋友們可以參考下。
    2019-06-06
  • java面試try-with-resources問題解答

    java面試try-with-resources問題解答

    這篇文章主要介紹了java面試try-with-resources問題解答,?這個語句的作用是,確保該語句執(zhí)行之后,關閉每一個資源,也就是說它確保了每個資源都在生命周期結束之后被關閉
    2022-07-07
  • java內存泄漏與內存溢出關系解析

    java內存泄漏與內存溢出關系解析

    這篇文章主要介紹了java內存泄漏與內存溢出關系解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • Java隊列篇之實現(xiàn)數(shù)組模擬隊列及可復用環(huán)形隊列詳解

    Java隊列篇之實現(xiàn)數(shù)組模擬隊列及可復用環(huán)形隊列詳解

    像棧一樣,隊列(queue)也是一種線性表,它的特性是先進先出,插入在一端,刪除在另一端。就像排隊一樣,剛來的人入隊(push)要排在隊尾(rear),每次出隊(pop)的都是隊首(front)的人
    2021-10-10
  • 詳解Spring Boot 目錄文件結構

    詳解Spring Boot 目錄文件結構

    這篇文章主要介紹了Spring Boot 目錄文件結構的相關資料,文中示例代碼非常詳細,幫助大家更好的理解和學習,感興趣的朋友可以了解下
    2020-07-07
  • Java實現(xiàn)File轉換MultipartFile格式的例子

    Java實現(xiàn)File轉換MultipartFile格式的例子

    本文主要介紹了Java實現(xiàn)File轉換MultipartFile格式的例子,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • Java中的Object類用法總結

    Java中的Object類用法總結

    Java是一種面向對象的編程語言,它提供了一個非常強大的類庫,其中一個基本類是Object類,下面這篇文章主要給大家介紹了Java中Object類用法的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-04-04

最新評論

大名县| 梁平县| 昌江| 苗栗县| 溆浦县| 清涧县| 安图县| 上高县| 雅安市| 邵东县| 丰县| 武隆县| 和静县| 克拉玛依市| 新巴尔虎右旗| 介休市| 昭平县| 瑞安市| 玛曲县| 图木舒克市| 宁夏| 当涂县| 浑源县| 凤台县| 子长县| 宁国市| 谢通门县| 桃园县| 福鼎市| 广州市| 左权县| 汝城县| 新乡县| 西峡县| 海原县| 苏尼特左旗| 屯门区| 胶南市| 清原| 盖州市| 北票市|