c中的行为抽象类和接口是什么

本文关键字:接口 是什么 抽象类 | 更新日期: 2024-09-21 07:29:46

下面的代码是

public interface NomiInterface
{
     void method();
}
public abstract class Nomi1
{
     public void method()
     {
     }
}
public class childe : Nomi1, NomiInterface 
{ 
}

现在编译成功了吗?为什么不需要重写childe类中的接口方法?

c中的行为抽象类和接口是什么

您需要接口的显式实现。抽象类方法method()的实现满足了接口抽象方法实现的需要。因此在类childe中定义接口的方法,但显式实现需要调用接口的方法而不需要调用类。

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 中存在的抽象类和接口实现的方法

childe c = new childe();
NomiInterface ni = new childe();
ni.method();
c.method();

输出为

interface method
abstract class method

另一方面,如果不进行显式接口实现,那么childe类中给出的实现将不会调用childe或接口对象。

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"); }
}

像以前一样创建类和接口的对象。

childe c = new childe();
NomiInterface ni = new childe();
ni.method();
c.method();

你将得到的输出

abstract class method
abstract class method

作为附加说明,您将注意类/方法名称的命名约定。您可以在这里找到更多关于命名约定的信息。