步步為營 04 乙個通過介面實現多型的經典例子

2022-09-18 11:33:18 字數 2480 閱讀 5481

說明:涉及到繼承,抽象類,虛方法,介面等知識點

鳥類都有翅膀,

鳥類都會吃,但吃的食物不一樣

鳥類都會叫,雖然叫聲不一樣,喜鵲,燕子,麻雀,感覺都是嘰嘰喳喳的.程式設計師中的世界就是講兒.

鳥類中,麻雀會飛,喜鵲會飛和鴕鳥不會飛

鳥類中,麻雀,喜鵲都是"嘰嘰喳喳"的叫,鴕鳥"哦哦"(當然我沒有聽過,也懶得去查,主要矛盾於次要矛盾)

另外飛機也會飛

定義乙個父類-鳥類(屬性:翅膀;方法:吃;虛方法:叫聲)

定義一種能力(介面iflyable) 

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

bird

}

ifly

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

bird

//定義抽象方法--吃

public

abstract

void

eat();

//定義虛方法

public

virtual

void

sing() }}

bird

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

bird

public

void

fly()

private

string

wing;

public

override

string

wing

set }}}

sparrow

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

bird

set }

public

override

void

eat()

public

override

void

sing()}}

ostrich

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

bird

set }

public

override

void

eat()

public

void

fly()}}

view code

using

system;

using

system.collections.generic;

using

system.linq;

using

system.text;

using

system.threading.tasks;

namespace

bird

;

foreach (bird item in

birds)

sparrow sp = new

sparrow ();

pie p = new

pie();

sp.fly();

p.fly();

console.read();}}

}

main

WCF步步為營 一 簡單示例

本示例通過乙個簡單的加法服務,來演示wcf最基本的呼叫。1.新建乙個空的solution,命名為wcfsample,後面會把下面的工程新增進這個解決方案 2.新建wcf service libaray,命名jackwangwcfservice 3.右鍵jackwangwcfservice專案,新建命...

WCF步步為營 一 簡單示例

本示例通過乙個簡單的加法服務,來演示wcf最基本的呼叫。1.新建乙個空的solution,命名為wcfsample,後面會把下面的工程新增進這個解決方案 2.新建wcf service libaray,命名jackwangwcfservice 3.右鍵jackwangwcfservice專案,新建命...

《步步為營》 封裝 Win7 教程 第一節

步步為營封 win7 引言 win7 rtm發布已經有好幾天了,其實我從最早vista時就研究過win6.x這一代系統的封裝,之前又在win7 7264版本上實踐過部分win7封裝技術。想了很久,不想像以前那樣只發個傻瓜化的工具給大家用,因為那樣會使很多技術變得封鎖起來,所以我決定寫這篇教程。這篇教...