設為首頁收藏本站Access中國

Office中國論壇/Access中國論壇

 找回密碼
 注冊

QQ登錄

只需一步,快速開始

返回列表 發(fā)新帖
查看: 2876|回復: 0
打印 上一主題 下一主題

接口的例子

[復制鏈接]
跳轉到指定樓層
1#
發(fā)表于 2014-3-26 13:12:04 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
今天汪老師給我出了一道題,要求以下:
新建一個C#的控制臺程序工程,實現(xiàn)以下幾個小功能
1、創(chuàng)建動物接口,內含  吃();喝();叫();跑(); 四個接口
2、創(chuàng)建貓和兔類,繼承動物接口,實現(xiàn)每個吃喝叫跑功能
3、用WriteLine來表示一下就行了
我們假設兔子是不會叫的(好像只有遇到危險的時候會叫),也就是說兔子不應該有 叫()方法,這時候怎么處理?
我第一次寫的代碼
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace Animal
  6. {
  7.     class Animal2
  8.     {
  9.         static void Main()
  10.         {
  11.             AnimalCanShout Cat = new AnimalCanShout();
  12.             AnimalCannotShout Rabbit = new AnimalCannotShout();
  13.             Cat.eat();
  14.             Cat.drink();
  15.             Cat.shout();
  16.             Cat.run();

  17.             Rabbit.eat();
  18.             Rabbit.drink();
  19.             Rabbit.run();
  20.             Console.ReadKey();
  21.         }
  22.     }
  23.     interface IAnimalCannotShout
  24.     {
  25.         void eat();
  26.         void drink();
  27.         void run();
  28.     }
  29.     interface IAnimalCanShout : IAnimalCannotShout
  30.     {
  31.         void shout();
  32.     }
  33.     public class AnimalCannotShout
  34.     {
  35.         public void eat()
  36.         {
  37.             System.Console.WriteLine("eating");
  38.         }
  39.         public void drink()
  40.         {
  41.             System.Console.WriteLine("drinking");
  42.         }
  43.         public void run()
  44.         {
  45.             System.Console.WriteLine("running");
  46.         }
  47.     }
  48.     public class AnimalCanShout : AnimalCannotShout
  49.     {
  50.         public void shout()
  51.         {
  52.             System.Console.WriteLine("shouting");
  53.         }
  54.     }
  55. }
復制代碼
經(jīng)過汪老師提示后,改了代碼

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;

  5. namespace Animal
  6. {
  7.     class Program
  8.     {
  9.         static void Main(string[] args)
  10.         {
  11.             Cat cat = new Cat();
  12.             Rabbit rabbit = new Rabbit();
  13.             cat.eat();
  14.             cat.drink();
  15.             cat.shout();
  16.             cat.run();

  17.             rabbit.eat();
  18.             rabbit.drink();
  19.             rabbit.run();

  20.             System.Console.ReadKey();
  21.         }
  22.     }
  23.     public interface Ieat
  24.     {
  25.         void eat();
  26.     }
  27.     public interface Irun
  28.     {
  29.         void run();
  30.     }
  31.     public interface Ishout
  32.     {
  33.         void shout();
  34.     }
  35.     public interface Idrink
  36.     {
  37.         void drink();
  38.     }
  39.     public class Cat : Ieat, Idrink, Ishout, Irun
  40.     {
  41.         public void eat()
  42.         {
  43.             System.Console.WriteLine("eating");
  44.         }

  45.         public void drink()
  46.         {
  47.             System.Console.WriteLine("drinking");
  48.         }
  49.         public void shout()
  50.         {
  51.             System.Console.WriteLine("shouting");
  52.         }

  53.         public void run()
  54.         {
  55.             System.Console.WriteLine("running");
  56.         }
  57.     }
  58.     public class Rabbit : Ieat, Idrink, Irun
  59.     {
  60.         public void eat()
  61.         {
  62.             System.Console.WriteLine("eating");
  63.         }

  64.         public void drink()
  65.         {
  66.             System.Console.WriteLine("drinking");
  67.         }
  68.         public void run()
  69.         {
  70.             System.Console.WriteLine("running");
  71.         }
  72.     }
  73. }
復制代碼
第一次的代碼,感覺是散的,貓的類與兔子的類沒有什么交集。第二次的代碼,把動物分類二類了,一類會叫的,一類不會叫的,動物都有吃喝跑功能。
寫第一次代碼時,不會用接口的繼承,與類的繼承,所以感覺寫得很散。


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享分享 分享淘帖 訂閱訂閱
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則

QQ|站長郵箱|小黑屋|手機版|Office中國/Access中國 ( 粵ICP備10043721號-1 )  

GMT+8, 2024-10-23 10:25 , Processed in 0.087740 second(s), 24 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回復 返回頂部 返回列表