日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 重写与重载

發(fā)布時間:2023/12/10 java 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 重写与重载 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

方法的重寫
重寫是子類對父類的允許訪問的方法的實現(xiàn)過程進行重新編寫, 返回值和形參都不能改變。
重寫的好處在于子類可以根據(jù)需要,定義特定于自己的行為。
也就是說子類能夠根據(jù)需要實現(xiàn)父類的方法。
重寫方法不能拋出新的檢查異常或者比被重寫方法申明更加寬泛的異常。例如: 父類 的一個方法申明了一個檢查異常 IOException,但是在重寫這個方法的時候不能拋出 Exception 異常,因為 Exception 是 IOException 的父類,只能拋出 IOException 的 子類異常。
方法的重寫規(guī)則:

  • 參數(shù)列表必須完全與被重寫方法的相同;
  • 返回類型必須完全與被重寫方法的返回類型相同;
  • 訪問權(quán)限不能比父類中被重寫的方法的訪問權(quán)限更低。例如:如果父類的一個方 法被聲明為public,那么在子類中重寫該方法就不能聲明為protected。
  • 父類的成員方法只能被它的子類重寫。
  • 聲明為final的方法不能被重寫。
  • 聲明為static的方法不能被重寫,但是能夠被再次聲明。
  • 子類和父類在同一個包中,那么子類可以重寫父類所有除了聲明為private和final 的方法。 子類和父類不在同一個包中,那么子類只能夠重寫父類的聲明為public和 protected的非final方法。
  • 重寫的方法能夠拋出任何非強制異常,無論被重寫的方法是否拋出異常。但是,重寫的方法不能拋出新的強制性異常,或者比被重寫方法聲明的更廣泛的強制性 異常,反之則可以。 構(gòu)造方法不能被重寫。
  • 如果不能繼承一個方法,則不能重寫這個方法。

示例如下:

public class Brid {//父類public void fly(){System.out.println("我是一只小鳥"); }protected void defaultMetthod2(){ System.out.println("我是一只小小小鳥,怎么飛也飛不高"); } } public class Ostrch extends {public void fly(){ //重寫父類的方法super.fly(); System.out.println(" 一只鴕鳥,但我飛不高"); } } public class Demo1 {public static void main(String[] args) {Ostrch ostrch = new Ostrch();ostrch.fly(); } }

方法的重載
重載(overloading) 是在一個類里面,方法名字相同,而參數(shù)不同。返回類型可以相同也可以不同。
每個重載的方法(或者構(gòu)造函數(shù))都必須有一個獨一無二的參數(shù)類型列表。
最常用的地方就是構(gòu)造器的重載。
Java程序中確定一個方法需要三個要素:
>調(diào)用者,也就是方法的所屬者,既可以是類,也可以是對象。
>方法名,方法的標識。方法名相同
>形參列表,當調(diào)用方法時,系統(tǒng)將會根據(jù)傳入的實參列表匹配。
重載規(guī)則:

  • 被重載的方法必須形參列表不一樣(參數(shù)個數(shù)或類型不一樣);
  • 被重載的方法可以改變返回類型;
  • 重載的方法可以改變訪問修飾符;
  • 被重載的方法可以聲明新的或更廣的檢查異常;
  • 方法能夠在同一個類中或者在一個子類中被重載。
  • 返回值類型不能作為重載函數(shù)的區(qū)分標準。

示例如下:

public void saya(String text){System.out.println(this.tall+"高的"+ this.name + "說:\""+text+"\"");} public void saya(String text,String state){System.out.println(this.tall+"高的"+ this.name +state+"的說:\""+text+"\"");}

重寫與重載的區(qū)別

  • 方法重載是一個類中定義了多個方法名相同,而他們的參數(shù)的數(shù)量不同或數(shù)量相同而類型和次序不同,則稱為方法的重載(Overloading)。
  • 方法重寫是在子類存在方法與父類的方法的名字相同,而且參數(shù)的個數(shù)與類型一 樣,返回值也一樣的方法,就稱為重寫(Overriding)。
  • 方法重載是一個類的多態(tài)性表現(xiàn),而方法重寫是子類與父類的一種多態(tài)性表現(xiàn)。

總結(jié)

以上是生活随笔為你收集整理的Java 重写与重载的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。