在實(shí)際編程中,會(huì)經(jīng)常遇到多個(gè)類(lèi)中的某些方法實(shí)現(xiàn)邏輯類(lèi)似的情況,這時(shí)我們可以將這些類(lèi)中的相同部分抽象到父類(lèi)中,對(duì)于有差異的地方,子類(lèi)根據(jù)自身的實(shí)際需求來(lái)各自實(shí)現(xiàn)。
以羽毛球運(yùn)動(dòng)為例,打球必有發(fā)接發(fā)環(huán)節(jié),發(fā)球分正手和反手兩種(這里不談?wù)撚鹎蚣夹g(shù)細(xì)節(jié)),一般男單反手發(fā)球,女單正手發(fā)球,但發(fā)接發(fā)這個(gè)環(huán)節(jié)的流程是一致的。
abstract class Badminton { public abstract void Serve(); public abstract void Catch(); public abstract void Play(); }class MenSingle : Badminton { public override void Serve() { Console.WriteLine("反手發(fā)球......"); } public override void Catch() { Console.WriteLine("正手推底線(xiàn)"); } public override void Play() { Serve(); Catch(); } }class&