C# Interface 接口

接口:一组 对外 行为 的 规范。要求实现接口的类必须实现所有接口的成员。
(包含属性和方法,只关注行为,不关注数据,且不关注行为的实现,实现有实现类完成。)

一组:可以有多个方法,

对外:接口成员有子类实现

行为:接口中只能包含抽象的成员(方法、自动属性(无方法体),索引器,事件 ,本质都是方法。)不能有字段和构造函数。

规范:要求子类必须自行实现,否则出错。

语法格式:

public interface I.....able  //表示一种能力
{
    
}

1.接口中的成员不能添加访问修饰符(默认是public、但是不能写,  类默认是private修饰)

2.关键字:interface ,I...able(一种能力)

3.方法:(访问级别和接口相同,默认是 internal )方法返回值,方法名称(); //不能包含方法体       C#8.0可以包含方法体。

4.类与接口是多实现,必须实现所有接口的方法

---------------------------------------------------------------------------------------------------------------------------------

为了多态,接口不能被实例化,接口不能用new()创建对象。

接口不能被实例化,抽象类不能被实例化,静态类不能被实例化。

接口当中的成员不能被实例化,因为接口当中的成员没有实现。对象调用方法没有意义。

多态是为了指向子类对象。

---------------------------------------------------------------------------------------------------------------------------------

抽象类与接口的选用规则:

1.抽象类与子类是是 is a 的关系(是一种)

2.接口与实现类是 can do 的关系(能够做的功能)

3.类可以包含普通成员,接口都是抽象成员

4.类与类是单继承,接口的实现可以实现多个接口。

5.普通类可以用虚方法(可以写一点方法体)

6.抽象类是抽象方法(没有办法写方法体)

作用:

1.规范不同类型的行为,达到不同类型在行为上的一致性

2.扩展一个类已有的行为

使用方法,接口的显式实现

1.接口和接口之间可以多继承,并且可以多继承。

2.接口并不能去继承一个类,而类可以继承接口(接口只能继承接口,而类可以继承接口,也可以继承类。)

3.实现接口的成员必须实现该接口的全部成员。

4.一个类可以同时继承一个类并实现多个接口。如果一个类同时继承父类A,并实现类接口I...A那么语法上A(类)必须写在I...A(接口)的前面。

1.如果一个类实现了两个或者多个接口并且有相同的方法,显式实现接口。

      也可以强制加上接口名来显式实现接口

     (不能添加访问修饰符,默认是私有的 private )

     解决多借口实现二义性问题,解决接口中成员对实现不适用的问题。

     a.通过接口引用调用,实现类的应用。父引用,调父方法是多态的一种。

     b.通过类引用去调用,因为是私有private的,没有办法去调用(会报错)。

   (需要通过包装到另一个方法中后才能调用)

注:屏蔽多接口实现冲突。不让类来调用这个方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值