国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - Java 重寫與重載方法與區(qū)別詳解

Java 重寫與重載方法與區(qū)別詳解

2020-09-11 10:49wbb Java教程

本篇文章通過實例詳細介紹了重寫與重載,以及他們的區(qū)別,需要的朋友可以參考下

重寫(Override)

重寫是子類對父類的允許訪問的方法的實現(xiàn)過程進行重新編寫!返回值和形參都不能改變。即外殼不變,核心重寫!

重寫的好處在于子類可以根據(jù)需要,定義特定于自己的行為。

也就是說子類能夠根據(jù)需要實現(xiàn)父類的方法。

在面向?qū)ο笤瓌t里,重寫意味著可以重寫任何現(xiàn)有方法。實例如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Animal{
 public void move(){
  System.out.println("動物可以移動");
 }
}
class Dog extends Animal{
 public void move(){
  System.out.println("狗可以跑和走");
 }
}
public class TestDog{
 public static void main(String args[]){
  Animal a = new Animal(); // Animal 對象
  Animal b = new Dog(); // Dog 對象
  a.move();// 執(zhí)行 Animal 類的方法
  b.move();//執(zhí)行 Dog 類的方法
 }
}

以上實例編譯運行結(jié)果如下:

?
1
2
動物可以移動
狗可以跑和走

在上面的例子中可以看到,盡管b屬于Animal類型,但是它運行的是Dog類的move方法。

這是由于在編譯階段,只是檢查參數(shù)的引用類型。

然而在運行時,Java虛擬機(JVM)指定對象的類型并且運行該對象的方法。

因此在上面的例子中,之所以能編譯成功,是因為Animal類中存在move方法,然而運行時,運行的是特定對象的方法。
思考以下例子:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Animal{
 public void move(){
  System.out.println("動物可以移動");
 }
}
class Dog extends Animal{
 public void move(){
  System.out.println("狗可以跑和走");
 }
 public void bark(){
  System.out.println("狗可以吠叫");
 }
}
public class TestDog{
 public static void main(String args[]){
  Animal a = new Animal(); // Animal 對象
  Animal b = new Dog(); // Dog 對象
  a.move();// 執(zhí)行 Animal 類的方法
  b.move();//執(zhí)行 Dog 類的方法
  b.bark();
 }
}

以上實例編譯運行結(jié)果如下:

?
1
2
3
4
TestDog.java:30: cannot find symbol
symbol : method bark()
location: class Animal
    b.bark();     ^

該程序?qū)伋鲆粋€編譯錯誤,因為b的引用類型Animal沒有bark方法。

方法的重寫規(guī)則

參數(shù)列表必須完全與被重寫方法的相同;

返回類型必須完全與被重寫方法的返回類型相同;

訪問權(quán)限不能比父類中被重寫的方法的訪問權(quán)限更高。例如:如果父類的一個方法被聲明為public,那么在子類中重寫該方法就不能聲明為protected。

父類的成員方法只能被它的子類重寫。

聲明為final的方法不能被重寫。

聲明為static的方法不能被重寫,但是能夠被再次聲明。

子類和父類在同一個包中,那么子類可以重寫父類所有方法,除了聲明為private和final的方法。

子類和父類不在同一個包中,那么子類只能夠重寫父類的聲明為public和protected的非final方法。

重寫的方法能夠拋出任何非強制異常,無論被重寫的方法是否拋出異常。但是,重寫的方法不能拋出新的強制性異常,或者比被重寫方法聲明的更廣泛的強制性異常,反之則可以。

構(gòu)造方法不能被重寫。

如果不能繼承一個方法,則不能重寫這個方法。

Super關(guān)鍵字的使用

當(dāng)需要在子類中調(diào)用父類的被重寫方法時,要使用super關(guān)鍵字。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Animal{
 public void move(){
  System.out.println("動物可以移動");
 }
}
class Dog extends Animal{
 public void move(){
  super.move(); // 應(yīng)用super類的方法
  System.out.println("狗可以跑和走");
 }
}
public class TestDog{
 public static void main(String args[]){
  Animal b = new Dog(); // Dog 對象
  b.move(); //執(zhí)行 Dog類的方法
 }
}

以上實例編譯運行結(jié)果如下:

?
1
2
動物可以移動
狗可以跑和走

重載(Overload)

重載(overloading) 是在一個類里面,方法名字相同,而參數(shù)不同。返回類型呢?可以相同也可以不同。

每個重載的方法(或者構(gòu)造函數(shù))都必須有一個獨一無二的參數(shù)類型列表。

只能重載構(gòu)造函數(shù)

重載規(guī)則

被重載的方法必須改變參數(shù)列表;

被重載的方法可以改變返回類型;

被重載的方法可以改變訪問修飾符;

被重載的方法可以聲明新的或更廣的檢查異常;

方法能夠在同一個類中或者在一個子類中被重載。

實例

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class Overloading {
 public int test(){
 System.out.println("test1");
 return 1;
 }
 public void test(int a){
 System.out.println("test2");
 }
 //以下兩個參數(shù)類型順序不同
 public String test(int a,String s){
 System.out.println("test3");
 return "returntest3";
 }
 public String test(String s,int a){
 System.out.println("test4");
 return "returntest4";
 }
 public static void main(String[] args){
 Overloading o = new Overloading();
 System.out.println(o.test());
 o.test(1);
 System.out.println(o.test(1,"test3"));
 System.out.println(o.test("test4",1));
 }
}

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

區(qū)別點 重載方法 重寫方法
參數(shù)列表 必須修改 一定不能修改
返回類型 可以修改 一定不能修改
異常 可以修改 可以減少或刪除,一定不能拋出新的或者更廣的異常
訪問 可以修改 一定不能做更嚴(yán)格的限制(可以降低限制)

希望本篇文章對各位朋友有所幫助

原文鏈接:http://www.2cto.com/kf/201601/486515.html

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 在线色站 | 超碰首页 | 亚洲 成人 av | 亚洲成人一二三 | 亚洲天堂中文字幕 | 精品成人久久 | 高清一区二区三区 | 国产久| 日韩中文字幕av | 女人性做爰免费网站 | 欧美日韩在线免费 | 日本精品视频一区二区 | 日韩看片 | 1区2区在线观看 | 日韩在线一区二区 | 国产精品久久久久久久久久99 | 一级爱| 精品96久久久久久中文字幕无 | 欧美第5页| 激情五月婷 | 日韩一区二区在线播放 | 亚洲一区二区三区视频 | 欧美一区二区黄色 | www.日韩在线观看 | 久久福利 | 国产欧美精品区一区二区三区 | 欧美日韩久久久 | 亚洲人人 | 久久久婷婷一区二区三区不卡 | 国外成人在线视频网站 | 天堂在线中文字幕 | 久久久久久久国产精品视频 | 国产成人综合网 | 国产一区中文字幕 | 欧美日韩精品一区二区在线播放 | 日韩精品成人 | av片网站 | 成人免费黄色毛片 | 亚洲国产91 | 久久久久久久久久亚洲 | 国产精品久久久久白丝呻吟 |