在下个载的源码中有这样一个问题:在抽象类中定义了一些抽象方法,和一些非抽象方法,但这些非抽象方法都没有具体的实现!编译时又不出错...谁知道这是什么原因?(我单独写类似的这样一个抽象类出来,又直接报出错了)
例:
public abstract class TestAbstract
{
public TestAbstract();//本应报错
public void Testing(string _testString);//本应报错
public abstract void TestingAbstract(string _testString);
}谢谢!!!!
例:
public abstract class TestAbstract
{
public TestAbstract();//本应报错
public void Testing(string _testString);//本应报错
public abstract void TestingAbstract(string _testString);
}谢谢!!!!
但是如果:public class Impl : TestAbstract
{}这样就报错了:你没有实现TestingAbstract方法。
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就可以根据不同的配置,输出不同的结果。
{
public TestAbstract();//既然不是abstract的当然要方法体{}了
public void Testing(string _testString);//既然不是abstract的当然要方法体{}了
public abstract void TestingAbstract(string _testString);
}
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.");
}
}