华南俳烁实业有限公司

考試首頁 | 考試用書 | 培訓(xùn)課程 | 模擬考場 | 考試論壇  
全國  |             |          |          |          |          |         
  當(dāng)前位置:計算機(jī)等級 > 二級考試 > Java語言程序設(shè)計 > 考試輔導(dǎo) > 文章內(nèi)容
  

全國計算機(jī)等級考試Java語言程序設(shè)計輔導(dǎo)(53)

中華IT學(xué)院   【 】  [ 2016年2月18日 ]

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

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

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

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

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é)果如下:

動物可以移動
狗可以跑和走

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

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

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

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

思考以下例子:

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é)果如下:

TestDog.java:30: cannot find symbol
symbol  : method bark()
location: class Animal
                b.bark();
                 ^

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

分享到:
本文糾錯】【告訴好友】【打印此文】【返回頂部
將考試網(wǎng)添加到收藏夾 | 每次上網(wǎng)自動訪問考試網(wǎng) | 復(fù)制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
關(guān)于本站  網(wǎng)站聲明  廣告服務(wù)  聯(lián)系方式  站內(nèi)導(dǎo)航  考試論壇
Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved
韶山市| 廉江市| 裕民县| 松阳县| 霍邱县| 云安县| 定南县| 炎陵县| 元谋县| 阆中市| 遵义市| 黄冈市| 岫岩| 五河县| 和顺县| 巴塘县| 东山县| 长岭县| 平昌县| 嘉兴市| 项城市| 巴东县| 璧山县| 三门县| 连州市| 额敏县| 汉中市| 疏勒县| 伽师县| 隆尧县| 阿城市| 临江市| 昌都县| 定西市| 阜新| 凤台县| 靖边县| 肇源县| 全南县| 都江堰市| 金湖县|