//接口
public interface TestInterface
{
/// <summary>
/// 姓名
/// </summary>
public string Name => "张三";
/// <summary>
/// 获取姓名
/// </summary>
/// <returns></returns>
public string GetName()
{
return Name;
}
public string Gande { get; set; }
string GetGande() {
Gande = "女";
return Gande;
}
}
//子类
public class Test : TestInterface
{
//public string Name => "李四";
//public string GetName()
//{
// return "李四";
//}
}
TestInterface test = new Test();
var result = new string[]
{
test.Name,
test.GetName(),
};
return result;
首先以控制翻转的形式创建一个接口实例:test。
子类代码先注释掉。直接调用名称,此时返回:
再去掉子类注释。此时返回:
发现是覆盖的形式。
总结
子类如果“重复”写接口已有实现的方法,那么是覆盖的形式。如果没有“重复”写,那么是使用接口本身方法。
类似对“virtual“方法的:”override”,但是也有不同之处。
接口定义了所有类继承接口时应遵循的语法合同。接口定义了语法合同 “是什么” 部分,派生类定义了语法合同 “怎么做” 部分。
接口定义了属性、方法和事件,这些都是接口的成员。接口只包含了成员的声明。成员的定义是派生类 的责任。
接口提供了派生类应遵循的标准结构。
接口使得实现接口的类或结构在形式上保持一致。