亚洲欧洲国产欧美一区精品,激情五月亚洲色五月,最新精品国偷自产在线婷婷,欧美婷婷丁香五月天社区

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

      全國計算機等級考試Java語言程序設計輔導(53)

      中華IT學院   【 】  [ 2016年2月18日 ]

      重寫是子類對父類的允許訪問的方法的實現(xià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虛擬機(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) | 復制本頁地址,傳給QQ/MSN上的好友 | 申請鏈接 | 意見留言 TOP
      關(guān)于本站  網(wǎng)站聲明  廣告服務  聯(lián)系方式  站內(nèi)導航  考試論壇
      Copyright © 2007-2013 中華考試網(wǎng)(Examw.com) All Rights Reserved