1、接口的定义:接口使用interface关键字来定义
接口一般公开,使用public或internal,接口中可以包含类的常用成员(如:属性,方法,事件),但并不是类中的所有的成员都可以在接口中存在。接口中的成员默认就是公开的(public),public关键字必须省略。
接口的命名建议:接口命名一般建议使用大写I。
2、接口的规则:接口中不能有构造函数,也不能有字段
规律:通过类的实例访问的成员,统统在接口中不能存在。原因:接口不能实现化,只能被其他类实现。接口中一般不能出现静态的成员。属性成员默认公开。
方法成员默认公开,不能实现,这点和抽象方法类似。方法成员是在接口中出现最多的一种成员。
接口在实现时有两种方式:a.隐式实现(常用)b.显示实现
public class NYBank : IBank
{
private string _bankName = "农业银行";
string IBank.BankName { get => _bankName; set => _bankName = value; }
void IBank.Pay()
{
Console.WriteLine("农业银行转账!");
}
}
使用接口前必须实现接口,明确接口类型
NYBank nybank = new NYBank();
基金接口 IJijin:
public interface IJijin
{
void Buy(decimal amount);
void Sale(decimal amount);
}
接口有切换类型的可能,IBank被多个类实现
IBank bank = new NYBank();
bank = new JSBank();
bank.Pay();
IJijin jijin = new JSBank();
jijin.Sale(1000);
接口继承父接口,一个接口可以继承多个接口,一个类也能实现多个接口
public interface IChild : IParent, IParent2
{
void Method3();
}