繼承要符合 is a 關係,卡車繼承汽車,卡車 is a同一 汽車。
子類通過:繼承父類
///
/// 汽車類
///class
car
/// /// 卡車類
///public
class
truck:car
多型:同一操作作用於不同的物件時,可以有不同的解釋,產生不同的執行結果。通俗講即是"多種形態"。
可以通過虛方法,抽象方法實現多型,如下**,汽車類抽象方法run(),卡車類通過override重寫run()方法,實現多型。
///
/// 汽車類
///public
abstract
class
car
////// 卡車類
///public
class
truck : car
}
抽象類:乙個巨集觀,抽象的概念,用abstract修飾的類
///
/// 汽車類
///public
abstract
class
car
繼承是乙個 "是不是"的關係,而 介面 實現則是 "有沒有"的關係
相同點:
1.抽象類和介面都不能例項化物件,但是可以定義抽象類和介面型別的引用;
2.繼承抽象類和實現介面都要對其中的抽象方法全部實現;
不同點:
1.介面比抽象類更加抽象,抽象類中可以定義構造方法(構造器),可以有抽象方法和具體方法,
而介面中的方法全部都是抽象方法(介面中也可以沒有方法,這樣的介面稱為空介面)
2.抽象類中的方法可以是private,protected,public,介面全部都是public
3.抽象類中可以定義成員變數,而介面中定義的成員變數實際上都是常量(final)
4.有抽象方法的類必須宣告為抽象類,而抽象方法未必要有抽象方法
不同點
1、方法關鍵字不一樣
虛方法的方法關鍵字是:virtual。
2、基類的方法是否有方法體/實現
虛方法的方法:宣告並實現方法。
抽象類的方法:只作宣告,無方法體/無實現。
相同點
1、子類/派生類都要重寫父類的方法:關鍵字override。
abstract
load()讀取方法
public
class
xmlhelper}}
08:書本上檔案那一章中有哪些方法?**一一舉例
bool exists(string path)//檢查檔案是否存在
public
void
i***ists(string path)
}
void copy(string 原始檔路徑,string 目標檔案路徑) //複製
public
void
copy(string oldpath,string newpath)
void move(string 原始檔路徑,string 目標檔案路徑) //移動
public
void
move(string oldpath,string newpath)
void delete(string path)//刪除
public void del(string path)
getdirectories();//返回目錄
getfiles();//返回檔案
public void getdirectory(string path)
C 繼承與多型
派生類繼承基類 又稱父類 超類 的屬性和方法,在此基礎上可以進行修改或新增新的屬性和方法。class 派生類名 繼承方式 基類名 為了保護基類的資料封裝性,無論哪種繼承方式,積累的私有成員在派生類中都是不可見的。1.public繼承 基類的訪問許可權在派生類中不變。公有還是公有,保護還是保護,派生類...
C 繼承與多型
1 分析菱形繼承的問題。2 剖析虛繼承是怎麼解決二義性和資料冗餘的 首先,我們先來看乙個菱形繼承的程式。為了解決以上問題,我們引入虛繼承的語法。可以有效的解決菱形繼承的資料冗餘和二義性問題。1.虛繼承解決了菱形繼承體系裡子類物件包含多份父類物件的資料冗餘問題和浪費空間的問題。2.虛繼承看起來複雜,但...
C 繼承與多型
c 是一種物件導向的語言,最重要的乙個目的就是 提供可重用的 而類繼承就是c 提供來擴充套件和修改類的方法。類繼承就是從已有的類中派生出新的類,派生類繼承了基類的特性,同時可以新增自己的特性。實際上,類與類之間的關係分為三種 組合和繼承。以下是三種關係的 為了更好的理解 基類可以派生出派生類,基類也...