在下个载的源码中有这样一个问题:在抽象类中定义了一些抽象方法,和一些非抽象方法,但这些非抽象方法都没有具体的实现!编译时又不出错...谁知道这是什么原因?(我单独写类似的这样一个抽象类出来,又直接报出错了)
例:
public abstract class TestAbstract
{
    public TestAbstract();//本应报错
    public void Testing(string _testString);//本应报错
    public abstract void TestingAbstract(string _testString);
}谢谢!!!!

解决方案 »

  1.   

    单个TestAbstract当然不会报错,这个类只是在此定义了一个等待实现的方法接口。
    但是如果:public class Impl : TestAbstract
    {}这样就报错了:你没有实现TestingAbstract方法。
      

  2.   


    abstract class CalcAbstract
    {
        public void Print(int x, int y)
        {
          Console.WriteLine(this.Calc(x, y));
        }
        public abstract int Calc(int x, int y);
    }class Add : CalcAbstract
    {
        public override int Calc(int x, int y)
        {
            return x + y;
        }
    }class Sub : CalcAbstract
    {
        public override int Calc(int x, int y)
        {
            return x - y;
        }
    }CalcAbstract obj = new Add();
    obj.Print(10, 20);
    参照上面的代码。那么假设CalcAbstract obj = new Add();是可配置的,那么CalcAbstract就可以根据不同的配置,输出不同的结果。
      

  3.   

    public abstract class TestAbstract 

        public TestAbstract();//既然不是abstract的当然要方法体{}了
        public void Testing(string _testString);//既然不是abstract的当然要方法体{}了
        public abstract void TestingAbstract(string _testString); 
      

  4.   


    public abstract class TestAbstract
        {
            public TestAbstract()
            { }
            public void Testing(string _testString)
            { }
            public abstract void TestingAbstract(string _testString);
        }    public class TestClass : TestAbstract
        {
            //这里如果不实现TestAbstract中的abstract方法就会报错的
            public override void TestingAbstract(string _testString)
            {
                throw new Exception("The method or operation is not implemented.");
            }
        }
      

  5.   

    源代码里面,跨文件搜索下TestAbstract()肯定有具体实现!