C艹 重寫與多型

2021-09-02 14:51:15 字數 1244 閱讀 1564

1.類成員的「縱向擴充套件」(成員越來越多)

2.類成員的「縱向擴充套件」(行為改變,版本增高)

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

}class vehicle

}class car : vehicle

}}//小結

//若子類要重寫父類的方法,需要在父類的方法裡面加上『visual』,重寫的方法裡加『override』

3.類成員的隱藏(不常用)

例:

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

}class vehicle

}class car : vehicle

}}//小結

//不加'visual'和'override'就是隱藏;基本不用,了解就可以了

4.重寫與隱藏的發生條件:函式成員可見,而且簽名一致

二、多型(polymorphism)

1.基於重寫機制(visual→override)

例:方法重寫

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;

}class vehicle

}class car : vehicle

}class racecar:car

}}

2.函式成員的具體行為(版本)由物件決定

3.回顧:c#語言的變數和物件都是有型別的,所以會有「代差」

例:

vehicle racecar = new racecar();

//交通工具包含賽車

//但是不能反過來下來寫

racecar vehicle = new vehicle();

//任何交通工具都是賽車 錯誤

C 多型(重寫與覆蓋)

覆蓋 覆蓋 在子類和父類中,方法名 引數列表和返回值全部相同,構成覆蓋,重寫時子類重寫父類的方法,即子類將父類的方法覆蓋。此時需要使用new關鍵字,隱藏父類的細節 class animal class cat animal 重寫 public class a public class b a sta...

C 的重寫與多型

重寫也就是,繼承的不同方面,即子類對父類的縱向擴充套件。行為改變了,且版本增高了 下面的例子中,同樣有方法run,但引用vehicle和引用car兩種例項的時候,列印出來的語句是不一樣的。也就是說,用不同型別例項呼叫方法的時候,與例項相關聯的版本就會被呼叫 例如 static void main s...

重寫與多型

一.方法重寫規則 1.方法名相同。2.引數列表相同。3.返回值型別相同或者是其子類。4.訪問許可權不能嚴於父類。二.抽象方法 abstract也可用於方法 1.抽象方法沒有方法體。2.抽象方法必須在抽象類裡。3.抽象方法必須在子類中被實現,除非子類是抽象類。三.多型 是具有表現多種形態的能力的特徵。...