一般的做法是把某些行为定义成接口,譬如“吃”可以是一种行为,
interface HungrySpecies
{
  void Eat();
}当你生成动物对象时,你就可以实现这个行为class Animai : HungrySpecies
{
  public void Eat() {System.Console.WriteLine("eat()");}
}

解决方案 »

  1.   

    to saucer(思归):
    为什么要把把某些行为定义成接口?
    到底是哪些行为定义成接口,怎么分类?lonk(小鱼),
    多继承与用实现接口是有本质差别的如果不用实现接口,而直接用关联
    如: 
    public class Myform : System.Windows.Forms.Form
    {
         private xx as CMyInterface;
    }
      

  2.   

    public class Myform : System.Windows.Forms.Form
    {
         IMyInterface xx =new IMyInterface
    }代码拷错了,重发
      

  3.   

    如saucer(思归)所言,实现接口是表示对象的具有特定行为(Behave-As),而继承则表示对象A是B的一种(IS-A)。
    比如,Truck应该实现一个IDrivable的借口,而使用继承的话应该从Vehicle继承。
      

  4.   

    to qqchen79(知秋一叶) 谢谢
    我再消化消化
      

  5.   

    对一个实际的类来说接口实现/继承是一回事(java里用实现,我觉得更确切些),C#里都用继承的语法。而接口继承一般也可以指接口A从接口B继承。从设计来说,抽象类热仍然是类,所以抽象类继承仍然是类继承的IS-A的关系。比如定义Animal类为abstract,然后Cat可以从Animal继承。从应用来说,抽象类的好处是父类可以提供部分函数的标准实现(这对Template Design pattern来说非常重要),但Interface不行;在C#里,abstract可以提供一些静态方法/常量的定义,interface也不行。而Interface的好处就是多继承,一个类可以实现/继承多个interface。
      

  6.   

    AHA!
    thanks very much!!