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

JavaSE-面向?qū)ο?方法重寫(xiě))

 更新時(shí)間:2021年08月10日 17:30:08   作者:小濱MVP  
子類(lèi)在調(diào)用父類(lèi)的私有方法中不能直接調(diào)用,但是可以通過(guò)get方法進(jìn)行調(diào)用,修改屬性的值可以通過(guò)set方法進(jìn)行修改。而子類(lèi)想要修改父類(lèi)中的方法可以使用方法重寫(xiě)進(jìn)行操作。

方法重寫(xiě)與之前的方法重載不同

回顧一下方法重載,相同的方法名不同參數(shù)類(lèi)型和參數(shù)數(shù)量以及參數(shù)順序

package Demo1;
import java.util.Arrays;
public class Demo011 {
    public static void main(String[] args) {
        Demo011 D11=new Demo011();
        D11.demo(12,232,43,3);		//4個(gè)實(shí)際參數(shù),則調(diào)用第三個(gè)demo方法
    }
    public void demo(int a,int b){
        System.out.println(a+b);
    }
    public void demo(int a,int b,int c){
        System.out.println(a+b+c);
    }
    public void demo(int...ints){
        System.out.println(Arrays.toString(ints));
    }
}

方法重寫(xiě)

重寫(xiě)都是方法的重寫(xiě)與屬性無(wú)關(guān)

package Demo1;
public class Demo012 {
    public static void main(String[] args) {
            B b =new B();
            b.demo();
    }
}
class A{
    public static void demo(){
        System.out.println("Ademo");
    }
}
class B extends A{
    public static void demo(){
        System.out.println("Bdemo");
    }
}

執(zhí)行結(jié)果:

Bdemo

父類(lèi)的引用指向子類(lèi)進(jìn)行引用

    public static void main(String[] args) {
    //方法的調(diào)用只和數(shù)據(jù)類(lèi)型有關(guān)
            B b =new B();		//調(diào)用的是B類(lèi)的靜態(tài)方法
            b.demo();
            //父類(lèi)的引用指向子類(lèi)
            A a = new A();		//調(diào)用的是A類(lèi)的靜態(tài)方法
            a.demo();
    }

執(zhí)行結(jié)果:

Bdemo
Ademo

使用快捷鍵Alt+insert快速生成重寫(xiě)方法

在這里插入圖片描述

在這里插入圖片描述

Override重寫(xiě)方法

class A{
    public  void demo(){
        System.out.println("Ademo");
    }
}
class B  extends A{
    @Override	//注解,有功能的注釋
    public void demo() {
        super.demo();		//默認(rèn)調(diào)用父類(lèi)的demo()方法
    }
}

使用Override重寫(xiě)默認(rèn)是調(diào)用父類(lèi)的方法,我們可以在重寫(xiě)方法中調(diào)用自己的方法

class A{
    public  void demo(){
        System.out.println("Ademo");
    }
}
class B  extends A{
    @Override
    public void demo() {
        //super.demo(); 默認(rèn)調(diào)用父類(lèi)的demo()方法輸出Ademo
        System.out.println("Bdemo");
    }
}

重寫(xiě)之后執(zhí)行結(jié)果:

Bdemo
Bdemo

子類(lèi)重寫(xiě)父類(lèi)的demo()方法之后輸出為demoB,但是并不是子類(lèi)重寫(xiě)之后將父類(lèi)的方法修改了,子類(lèi)在進(jìn)行調(diào)用的時(shí)候調(diào)用的是重寫(xiě)后父類(lèi)的方法

package Demo3;
public class demo005 {
    public static void main(String[] args) {
            DemoB DB =new DemoB();
            DB.demo();		//調(diào)用子類(lèi)的demo
            DemoA DA=new DemoA();	//調(diào)用父類(lèi)的demo
            DA.demo();
    }
}
class DemoA{
    public void demo(){
        System.out.println("demoA");
    }
}
class DemoB extends DemoA{		//繼承
    @Override
    public void demo(){
        System.out.println("demoB");
    }
}

執(zhí)行結(jié)果:

demoB
demoA

但是我可以完全不繼承父類(lèi)也能輸出demoB,demoA

package Demo3;
public class demo005 {
    public static void main(String[] args) {
            DemoB DB =new DemoB();
            DB.demo();
            DemoA DA=new DemoA();
            DA.demo();
    }
}
class DemoA{
    public void demo(){
        System.out.println("demoA");
    }
}
class DemoB{		//A與B沒(méi)有繼承關(guān)系
    public void demo(){
        System.out.println("demoB");
    }
}

執(zhí)行結(jié)果:

demoB
demoA

兩種方式有什么區(qū)別呢?

  • 子類(lèi)繼承父類(lèi)重寫(xiě)方法,是通過(guò)子類(lèi)調(diào)用父類(lèi)的方法進(jìn)行重寫(xiě)的,子類(lèi)執(zhí)行結(jié)果也是重寫(xiě)后的方法,但并不是子類(lèi)把父類(lèi)的方法修改了
  • 方式二是在兩個(gè)不同類(lèi)下創(chuàng)建demo()方法,通過(guò)對(duì)象進(jìn)行調(diào)用。

父類(lèi)方法若添加static修飾符則重寫(xiě)失敗提示錯(cuò)誤

進(jìn)行方法重寫(xiě)時(shí)靜態(tài)方法和非靜態(tài)方法的區(qū)別很大,如果是加了static靜態(tài)方法,調(diào)用結(jié)果之和左邊定義的類(lèi)有關(guān)。方法重寫(xiě)與非靜態(tài)方法有關(guān)

在這里插入圖片描述

私有方法無(wú)法進(jìn)行方法重寫(xiě),重寫(xiě)的關(guān)鍵詞只能是public不能是private私有的

在這里插入圖片描述

重寫(xiě)小結(jié):

  • 方法重寫(xiě)需要有繼承關(guān)系,子類(lèi)重寫(xiě)父類(lèi)的方法
  • 子類(lèi)方法與父類(lèi)的方法方法名和修飾符必須相同
  • 以及方法的參數(shù)列表必須相同,不相同則為方法重載
  • 修飾符范圍可以擴(kuò)大但是不能縮小,private(小)–>proteated–>default–>public(大)
  • 重寫(xiě)可能會(huì)拋出異常,異常范圍可以被縮小但不能擴(kuò)大

為什么需要重寫(xiě)?

  • 父類(lèi)的功能子類(lèi)不一定需要或者不一定滿(mǎn)足,父類(lèi)的東西太多了子類(lèi)可能只需要一點(diǎn)

快捷鍵Alt+insert

快速創(chuàng)建Override

總結(jié)

本篇文章就到這里了,希望能給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

相關(guān)文章

  • java實(shí)現(xiàn)時(shí)間控制的幾種方案

    java實(shí)現(xiàn)時(shí)間控制的幾種方案

    這篇文章主要介紹了java實(shí)現(xiàn)時(shí)間控制的幾種方案,本文從多個(gè)方面給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • Spring?boot集成easy?excel實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能

    Spring?boot集成easy?excel實(shí)現(xiàn)導(dǎo)入導(dǎo)出功能

    這篇文章主要介紹了Spring?boot集成easy?excel實(shí)現(xiàn)導(dǎo)入導(dǎo)出操作,使用easyexcel,首先要引入easyexcel的maven依賴(lài),具體的版本根據(jù)你的需求去設(shè)置,本文結(jié)合實(shí)例代碼講解的非常詳細(xì),需要的朋友可以參考下
    2024-05-05
  • MyBatisPlus中@TableField注解的基本使用

    MyBatisPlus中@TableField注解的基本使用

    這篇文章主要介紹了MyBatisPlus中@TableField注解的基本使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • java接口防重提交的處理方法

    java接口防重提交的處理方法

    本文主要介紹了java接口防重提交的處理方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • 一文吃透Spring集成MyBatis

    一文吃透Spring集成MyBatis

    spring能集成很多的框架,是spring一個(gè)優(yōu)勢(shì)功能,通過(guò)集成功能,讓開(kāi)發(fā)人員使用其他框架更方便,本文將給大家詳細(xì)介紹Spring如何集成MyBatis,,需要的朋友可以參考下
    2023-05-05
  • SpringBoot的依賴(lài)管理配置

    SpringBoot的依賴(lài)管理配置

    一般來(lái)講SpringBoot項(xiàng)目是不需要指定版本,而SSM項(xiàng)目是需要指定版本,SpringBoot的核心依賴(lài)就是spring-boot-starter-parent和spring-boot-starter-web兩個(gè)依賴(lài),關(guān)于這兩個(gè)依賴(lài)的相關(guān)介紹具體今天小編給大家介紹下
    2022-07-07
  • Kotlin內(nèi)存陷阱inline使用技巧示例詳解

    Kotlin內(nèi)存陷阱inline使用技巧示例詳解

    這篇文章主要為大家介紹了Kotlin內(nèi)存陷阱inline使用技巧示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-10-10
  • java設(shè)計(jì)模式筆記之適配器模式

    java設(shè)計(jì)模式筆記之適配器模式

    這篇文章主要為大家詳細(xì)介紹了java設(shè)計(jì)模式之適配器模式筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-10-10
  • Java利用Phantomjs實(shí)現(xiàn)生成圖片的功能

    Java利用Phantomjs實(shí)現(xiàn)生成圖片的功能

    這篇文章主要介紹了Java利用Phantomjs實(shí)現(xiàn)生成圖片的功能,文中講解非常細(xì)致,代碼幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下
    2020-08-08
  • Java子類(lèi)實(shí)例化總是默認(rèn)調(diào)用父類(lèi)的無(wú)參構(gòu)造操作

    Java子類(lèi)實(shí)例化總是默認(rèn)調(diào)用父類(lèi)的無(wú)參構(gòu)造操作

    這篇文章主要介紹了Java子類(lèi)實(shí)例化總是默認(rèn)調(diào)用父類(lèi)的無(wú)參構(gòu)造操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10

最新評(píng)論

藁城市| 英德市| 辰溪县| 莱阳市| 沂源县| 哈巴河县| 宣汉县| 壶关县| 旺苍县| 永德县| 怀远县| 辛集市| 怀宁县| 宜君县| 永靖县| 中西区| 密山市| 阿尔山市| 句容市| 靖江市| 木兰县| 喀喇沁旗| 丹阳市| 原平市| 偏关县| 介休市| 波密县| 怀柔区| 扶风县| 安仁县| 丰城市| 石景山区| 浑源县| 大荔县| 济源市| 绥芬河市| 东山县| 吉木萨尔县| 吴堡县| 象山县| 金沙县|