本节主要介绍:编程
面向对象思想-多态;设计模式
接口;ide
抽象类。spa
Ⅰ、接口:设计
接口是包涵一组虚方法的抽象类型,其中每一种方法都有其名称、参数和返回值类型。接口中方法不能包涵任何实现。code
ex: orm
public interface IHelloWorld { bool CheckFileFormat(string fileName); }
一个类能够实现多个接口,当一个类实现接口时,它不只要实现该接口中定义的全部方法,还要实现该接口从其余接口中继承的全部方法!对象
Ⅱ、抽象类: blog
抽象类提供多个派生类共享基类的公共定义,它既能够提供抽象方法,又能够提供非抽象方法。抽象类不能实例化,必须经过继承由其派生类实现其抽象方法,所以对抽象类不能使用new关键字,也不能被密封。若是派生类没有实现全部的抽象方法,则该派生类也必须声明为抽象类。另外,实现抽象方法由override方法来完成。继承
Ⅲ、规则和场合:
a.“接口不变”,在由接口增长扩展时,应该增长新的接口,而不能更改现有接口;
b.尽可能将接口设计成功能单一的功能块;
c.在接口中,全部的方法都默认为public;
d.在抽象方法声明中不能使用static或virtual关键字。
Ⅳ:异同点:
1.相同点
a.都不能被直接实例化,均可以经过继承实现其抽象方法;
b.都是面向对象编程的技术基础,实现了诸多的设计模式。
2.不一样点
a.接口支持多继承;抽象类不能实现多继承; (严格说来,接口继承类应该称为类实现接口)b.接口只能定义抽象规则;抽象类既能够定义规则,还能够提供已实现的成员;c.接口是一组行为规范;抽象类是一个不彻底的类,着重族的概念;d.接口能够用于支持回调;抽象类在实现回调时有局限性;e.抽象类能够定义有实现的方法;f.接口能够做用于值类型和引用类型;抽象类只能做用于引用类型。 例如:Struct就能够继承接口,而不能继承抽象类。