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类中的接口方法?
您需要接口的显式实现。抽象类方法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
作为附加说明,您将注意类/方法名称的命名约定。您可以在这里找到更多关于命名约定的信息。