what is the behaviour abstract class and interface in c#?
本问题已经有最佳答案,请猛点这里访问。
我有下面的代码
1 2 3 4 5 6 7 8 9 10 11 12 13 | public interface NomiInterface { void method(); } public abstract class Nomi1 { public void method() { } } public class childe : Nomi1, NomiInterface { } |
现在编译成功了吗?为什么不需要重写childe类中的接口方法?
您需要显式实现接口。抽象类方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public interface NomiInterface { void method(); } public abstract class Nomi1 { public void method() { Console.WriteLine("abstract class method"); } } public class childe : Nomi1, NomiInterface { void NomiInterface.method() { Console.WriteLine("interface method"); } } |
您可以测试如何调用Childe中的抽象类方法和接口实现
输出是
1 2 | interface method abstract class method |
另一方面,如果不执行显式接口实现,那么childe类中给出的实现将不会被调用到childe或接口对象。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public interface NomiInterface { void method(); } public abstract class Nomi1 { public void method() { Console.WriteLine("abstract class method"); } } public class childe : Nomi1, NomiInterface { void method() { Console.WriteLine("interface method"); } } |
像前面那样创建类和接口的对象。
你将得到的输出
1 2 | abstract class method abstract class method |
作为附加说明,您将注意类/方法名称的命名约定。您可以在这里找到有关命名约定的更多信息。