加abstract就可以了。不过,首先要想想
有没有这样做的理由。

解决方案 »

  1.   

    我试了一下:
    public interface Class2
    {
    void methodA();
    void methodB();
    }
    public abstract class Class1:Class2
    {
    public Class1()
    {
    //
    // TODO: 在此处添加构造函数逻辑
    //
    } public void methodA()
    {

    } public void methodB()
    {

    }
    }
    这样写是对的,编译通过!
      

  2.   

    就是这样public abstract void methodA(){
           //dosomething
        }   
      

  3.   

    同意haiwangstar(南河三(天狼星上有没有普及C#))的说法,这样写有什么意义啊!!
      

  4.   

    抽象类也必须为在该类的基类列表中列出的接口的所有成员提供它自己的实现。但是,允许抽象类将接口方法映射到抽象方法上。
    interface A{
    {
       void methodA();
       void methodB();
    }
    abstract class B : A{
    {
       public abstract
     void methodA(){
           //dosomething
        }   
     public  abstract
     void methodB(){
           //dosomething
        }   }
    但是A{的实现将 methodA() 和 methodB() 映射到抽象方法上,这些抽象方法必须在从B 派生的非抽象类中重写。
      

  5.   

    ◎◎◎我有点不清楚倒底大家明不明白我的问题!!接口 A 有两个 成员方法 : methodA() 和 methodB()!
    抽象类 B 继承了接口 A ,但是只想实现其中的一个方法methodA()!
    那么,在B中为什么还得加上 methodB()的实现??或者重复劳动写一遍 abstract methodB();!!不是多此一举??
      

  6.   

    楼上的,你这样写编译通不过
     public void methodA(){
    //dosomething
    }
    public void methodB(){
    //dosomething
    } 把abstract去掉才行!
      

  7.   

    TO   thinkingforever(努力学习) 你的意思是C#的语法必须将接口方法映射到abstract方法?!
    可是这个约束是不是有点多此一举的感觉?!
      

  8.   

    或者:
    abstract class B : A{
    {
    public abstract void methodA(); public abstract void methodB();
    }
      

  9.   

    To yellowhwb(KaDoO) : 谢谢你的热心,不过,请先看清我问的是什么;)
      

  10.   

    MSDN上的(最后一句)
    ms-help://MS.MSDNQTR.2003FEB.2052/csref/html/vclrfAbstract.htmabstract 修饰符可以和类、方法、属性、索引器及事件一起使用。在类声明中使用 abstract 修饰符以指示类只能是其他类的基类。抽象类具有以下特性: 抽象类不能实例化。 
    抽象类可以包含抽象方法和抽象访问器。 
    不能用 sealed 修饰符修改抽象类,这意味着该类不能被继承。 
    从抽象类派生的非抽象类必须包括继承的所有抽象方法和抽象访问器的实实现。 
    在方法或属性声明中使用 abstract 修饰符以指示此方法或属性不包含实现。抽象方法具有以下特性: 抽象方法是隐式的 virtual 方法。 
    只允许在抽象类中使用抽象方法声明。 
    因为抽象方法声明不提供实实现,所以没有方法体;方法声明只是以一个分号结束,并且在签名后没有大括号 ({ })。例如: 
    public abstract void MyMethod();
    实现由 overriding 方法提供,它是非抽象类的成员。 
    在抽象方法声明中使用 static 或 virtual 修饰符是错误的。 
    除了在声明和调用语法上不同外,抽象属性的行为与抽象方法一样。 在静态属性上使用 abstract 修饰符是错误的。 
    在派生类中,通过包括使用 override 修饰符的属性声明可以重写抽象的继承属性。 
    抽象类必须为所有接口成员提供实现。
      

  11.   

    嗯!明白了,谢!不过能不能进一步探讨一下,这个约束是不是有点多余??因为很明显,一个无需实现的method signature 被写了两遍!