为什么接口的行为不像类
本文关键字:接口 为什么 | 更新日期: 2023-09-27 18:09:55
我有几个关于接口的问题。
-
为什么不能在接口成员中使用虚关键字
-
为什么不能在接口的派生类中使用override关键字
-
假设
interface Iface { void Func(); } class Program : Iface { static void Main(string[] args) { } public void Func() { Console.WriteLine("In func"); } }
为什么我需要在派生类的成员函数上使用public从接口,即在Func()定义?如果我不使用公共关键字,它将导致编译时错误
-
可以在接口中使用静态成员吗?
-
将方法标记为虚拟使继承类可以选择覆盖相应的方法。但是,当从接口继承时,实现不是可选的,而是强制性的。每个接口方法都是抽象的。
-
你不重写方法,你实现它们。接口方法没有自己的实现,没有什么可以覆盖。这没有任何意义。
-
为什么在类中实现的c#接口方法必须是公共的
-
不,我们不能在接口上使用静态方法
- 接口不需要这个。实现可以是
virtual
。 - 实现不需要这个——没有什么可以重写的。
- 你必须实例化一个
Program
来调用Func
。也没有静态接口的概念。
接口不像类,因为我们不能创建接口对象,如果我们可以创建接口对象来实现多重继承,那么我们就可以面对类多重继承时出现的菱形问题。