如何用抽象類實現(xiàn)兩只鴨子的模擬
在面向對象編程中,抽象類是一種不能直接實例化的類,它僅提供了一些方法和屬性的定義。本文將介紹如何用抽象類來實現(xiàn)兩只鴨子的模擬。創(chuàng)建項目首先,打開文件菜單,選擇“新建”并在下拉菜單中選擇“項目”。在彈出
在面向對象編程中,抽象類是一種不能直接實例化的類,它僅提供了一些方法和屬性的定義。本文將介紹如何用抽象類來實現(xiàn)兩只鴨子的模擬。
創(chuàng)建項目
首先,打開文件菜單,選擇“新建”并在下拉菜單中選擇“項目”。在彈出的窗口中選擇“控制臺應用程序”,為這個項目命名為“模擬動物2個鴨子用抽象類來實現(xiàn)”,然后點擊確定。系統(tǒng)會自動生成一些代碼。
編寫父類
為了實現(xiàn)兩只鴨子的模擬,我們需要先創(chuàng)建一個父類。在代碼編輯器中,編寫以下代碼:
```csharp
abstract class Duck
{
public abstract void Quack();
public abstract void Swim();
}
```
這段代碼定義了一個抽象類Duck,其中有兩個抽象方法:Quack()和Swim()。注意到這里使用了abstract關鍵字,這表示這兩個方法必須被子類重寫。
創(chuàng)建橡皮鴨子子類
現(xiàn)在,我們來創(chuàng)建一個假鴨子橡皮鴨子子類,它繼承自父類Duck。在代碼編輯器中,編寫以下代碼:
```csharp
class RubberDuck : Duck
{
public override void Quack()
{
Console.WriteLine("Squeak!");
}
public override void Swim()
{
Console.WriteLine("I float!");
}
}
```
這段代碼定義了一個名為RubberDuck的類,它繼承自父類Duck,并重寫了Quack()和Swim()方法。注意到這里使用了override關鍵字,這表示這兩個方法是從父類繼承而來的,并被子類重新實現(xiàn)了。
創(chuàng)建真鴨子子類
接著,我們來創(chuàng)建一個真鴨子子類,它同樣繼承自父類Duck。在代碼編輯器中,編寫以下代碼:
```csharp
class MallardDuck : Duck
{
public override void Quack()
{
Console.WriteLine("Quack!");
}
public override void Swim()
{
Console.WriteLine("I'm swimming!");
}
}
```
這段代碼定義了一個名為MallardDuck的類,它同樣繼承自父類Duck,并重寫了Quack()和Swim()方法。
測試程序
現(xiàn)在,我們已經定義好了父類和兩個子類。我們可以通過實例化對象來測試程序。在Main方法中,編寫以下代碼:
```csharp
static void Main(string[] args)
{
Duck rubberDuck new RubberDuck();
rubberDuck.Quack();
rubberDuck.Swim();
Duck mallardDuck new MallardDuck();
mallardDuck.Quack();
mallardDuck.Swim();
();
}
```
這段代碼實例化了一個RubberDuck對象和一個MallardDuck對象,并分別調用了它們的Quack()和Swim()方法。輸出結果為:
```
Squeak!
I float!
Quack!
I'm swimming!
```
我們成功地用抽象類實現(xiàn)了兩只鴨子的模擬!