面向对象基础-接口

在动物比赛中有一个比较特殊的比赛是为了给特异功能的动物展示其特殊的才能的。比如:机器叮当猫,石猴孙悟空,肥猪猪八戒,蜘蛛人等等。

4

 

变出东西应该是叮当猫、孙悟空、猪八戒的行为方法,要想用多态,就得让猫、候、猪都有“变出东西(特异功能)”能力,而为了具有普遍意义,干脆让动物都具有“变出东西(特异功能)”等行为,但是,我们发现,不是所有动物都具有“变出东西(特异功能)”的能力。只有Cat/Pig/Monkey有,这个时候,我们就会用到接口。

5

当然也可以是这样子

6

还有一种形式

7 

一个类可以支持多个接口,多个类也可以支持相同的接口。
所以,我们可以声明一个接口:

   1:      interface Ichange 
   2:      { 
   3:          string ChangeThing(string thing); 
   4:      } 

然后创建机器猫的类

   1:      class MachineCat:Cat,Ichange 
   2:      { 
   3:          public MachineCat() 
   4:              : base() 
   5:          { } 
   6:          public MachineCat(string name) 
   7:              : base(name) 
   8:          { } 
   9:          public string ChangeThing(string thing) //-------这里不需要override,因为是现实接口,重写继承 
  10:          { 
  11:              return base.Shout() + ",我有万能口袋,我可以变出:" + thing; 
  12:          } 
  13:      } 
  14:       //其余的StoneMonkey一样可以这样子创建 
  15:          private void button4_Click(object sender, EventArgs e) 
  16:          { 
  17:              MachineCat mcat = new MachineCat("叮当"); 
  18:              Ichange[] array = new Ichange[1]; 
  19:              array[0] = mcat; 
  20:              MessageBox.Show(array[0].ChangeThing("各种各样的东西")); 
  21:          } 

转载于:https://www.cnblogs.com/chenamo5776/archive/2011/11/13/2247167.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值