《你必须知道的.NET》--面向对象编程:接口和抽象类(Ⅱ)

本节主要介绍:编程

  面向对象思想-多态;设计模式

  接口;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就能够继承接口,而不能继承抽象类。
相关文章
相关标签/搜索