c#中 接口成员为什么不能使用关键字static virtul override abstract

来源:百度知道 编辑:UC知道 时间:2024/06/30 10:54:28

面向对象还不理解?
接口不实现方法,static是静态调用,调用不实现的方法,有意义吗?
接口里的方法是通过接口映射表来调用实现的,用virtual没有意义..
接口里不实现方法,自然override重写就没意义了..
接口是全部抽象的,既然全都是抽象,就没必要用abstract标明了.

接口.没有具体的实现,用static的话,会在生成对象的时候对static的变量,方法分配内存,接口没有具体的实现,所以不能用static
virtul说个简单的列子你看看就明白了
普通方法:
class A
{
public method(){}
}

class B : A
{
public method(){}
}
A aClass = new A();
aClass.method();//调用A中的method()
A aClass = new B();
aClass.method();//调用A中的method()
B bClass = new B();
bClass.method();//调用B中的method()
普通方法是看声明变量的类型来调用具体的方法的

看virtul的
class A
{
public virtual method(){}
}

class B : A
{
public override method(){}
}
A aClass = new A();
aClass.method();//调用A中的method()
A aClass = new B();
aClass.method();//调用B中的method()
B bClass = new B();
bClass.method();//调用B中的method()
virtul是通过实例化的对象