c#基础加强--多态II(接口)

  1. 接口的定义:把公共实例(非静态)方法和属性组合起来,以封装特定功能的一个集合。
  2. 接口的成员只能包含:方法、属性、索引、事件声明。
  3. 接口的成员没有访问修饰符。
  4. 注意:接口不能单独存在,不能像实例化一个类那样实例化接口;接口不能包含实现其成员的任何代码,而只是定义成员本身;实现过程由实现接口的类来完成。
  5. 接口的名称一般以大写字母I开头。
  6. 一个类可以支持多个接口。

接口与抽象类之间的共同点:

  1. 抽象类和接口都包含可以由派生类继承的成员。
  2. 接口和抽象类都不能直接实例化,但可以声明这些类型的变量。

接口和抽象类之间的区别:

  1. 派生类只能继承一个基类,即只能直接继承一个抽象类(但可以用一个继承链包含多个抽象类)。相反,类可以使用任意多个接口。
  2. 如:class 类名:object ,Interface[,...] 类如果有父类,则先写父类名,再写接口名。除非没有父类,则只有接口名。
  3. 抽象类可以拥有抽象成员(没有代码体,且必须在派生类中实现,除非继承类为抽象类)和非抽象成员(他们拥有代码体,也可以是虚拟的,这样就可以在派生类中重写)
  4. 接口成员必须都在使用接口的类上实现--他们没有代码体。
  5. 接口成员都是公共的,但抽象类的成员可以使私有的(只要他们不是抽象的)、受保护的、内部的或受保护的内部成员(其中受保护的内部成员只能在应用程序的代码或者派生类中访问)。
  6. 此外,接口中不能包含字段、构造函数、析构函数、静态成员或变量。

显示实现接口:

Interface IJieKou //定义接口

{

void Func();

}

class MyClass1:IJieKou

{

public void Func()

{

Console.WriteLine("普通实现接口");

}

}

class MyClass2:IJieKou

{

//显示实现接口,不能有public修饰符。实现的方面名前有“接口名:”。

void IJiekou.Func()

{

Console.WriteLine("显示实现接口");

}

}

接口的使用:

MyClass myClass1 = new MyClass1();

myClass1.Func();

IJiekou iJiekou = myClass1;

iJiekou.Func();

Console.WriteLine();

MyClass2 myClass2 = new MyClass2();

//此时用myClass2 是没有办法访问到 FunC()方法。

iJieKou = myClass2;

iJiekou.Func();

Console.ReadKey();

//在IL代码中,显示实现的接口方法,是私有的。

//实现方法:接口名.方法名()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值