C#--接口、抽象与封密

接口的声明

C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


开发中的创建接口:

C#--接口、抽象与封密

C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


接口的实现和继承

C#--接口、抽象与封密


接口可多继承
多继承:

C#--接口、抽象与封密

单继承
C#--接口、抽象与封密

接口关系图:

C#--接口、抽象与封密


接口的成员不能同名,即使类型不同

C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


继承的成员不用再声明

C#--接口、抽象与封密


C#--接口、抽象与封密


实例

C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


类关系图

C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


开放封闭原则

C#--接口、抽象与封密


C#--接口、抽象与封密


定义接口会飞的接口方法

C#--接口、抽象与封密


基类鸟类不用实现会飞的功能定义为抽象类

C#--接口、抽象与封密


三个派生类中进行重写方法

C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


接口实现会飞的鸟类

C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


这样的好处再来一个会飞的鸟类,天鹅
C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密

项目下载


显式接口

C#--接口、抽象与封密

编写一个鸟的基类并且抽象(Bird)
C#--接口、抽象与封密


气球基类(Balloon)
C#--接口、抽象与封密


两个继承鸟的派生类,并重写方法
(Eagle、Sparow)
C#--接口、抽象与封密


两个接口
C#--接口、抽象与封密


C#--接口、抽象与封密


隐式实现接口
C#--接口、抽象与封密


显式实现接口

C#--接口、抽象与封密


C#--接口、抽象与封密

(大型项目往往会有同名的接口)这就是显式接口的好处


只能通过接口来调用,不能通过具体类来做
C#--接口、抽象与封密


同时隐式实现接口和显式接口实现
C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


抽象类与抽象方法声明

C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


抽象类不能new
C#--接口、抽象与封密


抽象类中可以包含非抽象方法

C#--接口、抽象与封密


如果派生类没有实现所有的抽象方法,则该派生类也必须声明为抽象类

C#--接口、抽象与封密


如果一个非抽象类从抽象类中派生,则其必须通过重载来实现所有继承而来的抽象成员

C#--接口、抽象与封密


C#--接口、抽象与封密


Pow类

C#--接口、抽象与封密


PowB类

C#--接口、抽象与封密


PowC类

C#--接口、抽象与封密


C#--接口、抽象与封密


密封类与密封方法的使用

C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


密封方法

C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密


C#--接口、抽象与封密

项目下载