国产成人毛片视频|星空传媒久草视频|欧美激情草久视频|久久久久女女|久操超碰在线播放|亚洲强奸一区二区|五月天丁香社区在线|色婷婷成人丁香网|午夜欧美6666|纯肉无码91视频

如何用抽象類實(shí)現(xiàn)兩只鴨子的模擬

在面向?qū)ο缶幊讨校橄箢愂且环N不能直接實(shí)例化的類,它僅提供了一些方法和屬性的定義。本文將介紹如何用抽象類來實(shí)現(xiàn)兩只鴨子的模擬。創(chuàng)建項(xiàng)目首先,打開文件菜單,選擇“新建”并在下拉菜單中選擇“項(xiàng)目”。在彈出

在面向?qū)ο缶幊讨?,抽象類是一種不能直接實(shí)例化的類,它僅提供了一些方法和屬性的定義。本文將介紹如何用抽象類來實(shí)現(xiàn)兩只鴨子的模擬。

創(chuàng)建項(xiàng)目

首先,打開文件菜單,選擇“新建”并在下拉菜單中選擇“項(xiàng)目”。在彈出的窗口中選擇“控制臺(tái)應(yīng)用程序”,為這個(gè)項(xiàng)目命名為“模擬動(dòng)物2個(gè)鴨子用抽象類來實(shí)現(xiàn)”,然后點(diǎn)擊確定。系統(tǒng)會(huì)自動(dòng)生成一些代碼。

編寫父類

為了實(shí)現(xiàn)兩只鴨子的模擬,我們需要先創(chuàng)建一個(gè)父類。在代碼編輯器中,編寫以下代碼:

```csharp

abstract class Duck

{

public abstract void Quack();

public abstract void Swim();

}

```

這段代碼定義了一個(gè)抽象類Duck,其中有兩個(gè)抽象方法:Quack()和Swim()。注意到這里使用了abstract關(guān)鍵字,這表示這兩個(gè)方法必須被子類重寫。

創(chuàng)建橡皮鴨子子類

現(xiàn)在,我們來創(chuàng)建一個(gè)假鴨子橡皮鴨子子類,它繼承自父類Duck。在代碼編輯器中,編寫以下代碼:

```csharp

class RubberDuck : Duck

{

public override void Quack()

{

Console.WriteLine("Squeak!");

}

public override void Swim()

{

Console.WriteLine("I float!");

}

}

```

這段代碼定義了一個(gè)名為RubberDuck的類,它繼承自父類Duck,并重寫了Quack()和Swim()方法。注意到這里使用了override關(guān)鍵字,這表示這兩個(gè)方法是從父類繼承而來的,并被子類重新實(shí)現(xiàn)了。

創(chuàng)建真鴨子子類

接著,我們來創(chuàng)建一個(gè)真鴨子子類,它同樣繼承自父類Duck。在代碼編輯器中,編寫以下代碼:

```csharp

class MallardDuck : Duck

{

public override void Quack()

{

Console.WriteLine("Quack!");

}

public override void Swim()

{

Console.WriteLine("I'm swimming!");

}

}

```

這段代碼定義了一個(gè)名為MallardDuck的類,它同樣繼承自父類Duck,并重寫了Quack()和Swim()方法。

測試程序

現(xiàn)在,我們已經(jīng)定義好了父類和兩個(gè)子類。我們可以通過實(shí)例化對象來測試程序。在Main方法中,編寫以下代碼:

```csharp

static void Main(string[] args)

{

Duck rubberDuck new RubberDuck();

rubberDuck.Quack();

rubberDuck.Swim();

Duck mallardDuck new MallardDuck();

mallardDuck.Quack();

mallardDuck.Swim();

();

}

```

這段代碼實(shí)例化了一個(gè)RubberDuck對象和一個(gè)MallardDuck對象,并分別調(diào)用了它們的Quack()和Swim()方法。輸出結(jié)果為:

```

Squeak!

I float!

Quack!

I'm swimming!

```

我們成功地用抽象類實(shí)現(xiàn)了兩只鴨子的模擬!

標(biāo)簽: