程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> C#的繼承機制(2)

C#的繼承機制(2)

編輯:關於C語言

14.1.2 覆蓋

我們上面提到,類的成員聲明中,可以聲明與繼承而來的成員同名的成員。這時我們稱派生類的成員覆蓋(hide)了基類的成員。這種情況下,編譯器不會報告錯誤,但會給出一個警告。對派生類的成員使用new關鍵字,可以關閉這個警告。

前面汽車類的例子中,類car繼承了Vehicle的Speak()方法。我們可以給Car類也聲明一個Speak()方法,覆蓋Vehicle中的Speak,見下面的代碼。

程序清單14-2:

using System;
class Vehicle //定義汽車類
{
  public int wheels; //公有成員:輪子個數
  protected float weight; //保護成員:重量
  public Vehicle(){;};
  public Vehicle(int w,float g){
         wheels=w;
         weight=g;
      }
public void Speak(){
       Console.WriteLine("the w vehicle is speaking!");
       }
}
class Car:Vehicle //定義轎車類
{
  int passengers; //私有成員:乘客數
  public Car(int w,float g,int p)
      wheels=w;
      weight=g;
      passengers=p;
  }
  new public void Speak(){
      Console.WriteLine("Di-di!");
  }
}

注意:如果在成員聲明中加上了new關鍵字修飾符,而該成員事實上並沒有覆蓋繼承的成員,編譯器將會給出警告。在一個成員聲明同時使用new和override,則編譯器會報告錯誤。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved