抽象类(abstract class)在我的眼里她永远是一个类(class),只不过此类不像别的类一样,此类即可以只定义方法的声明(函数声明,而具体函数体或者函数实现在别的地方)也可以定义方法的实现。然而接口(interface)只定义了一种契约(contract),这种契约只是一种形式,而实际的要实现的契约过程是这种契约表现形式(实现implement),则需要通过具体的类来实现。所以接口只是一种约定,只声明而没实现的一种数据结构。
其次抽象类和普通类相比,那就是抽象类可以声明,也可以包含具体实现的函数,而普通类必须同时包含声明和实现。所以在使用抽象类的时候必须记得以下三点:
1.抽象类必须【被继承】
2.抽象类不能够【被密封】
3.抽象类不能【被实例化】意思是不能 new
关于第2点,为什么不能被密封,请大家查阅相关密封类的介绍.
首先在163博客发布在COPY过来的,都是我本人.
http://wanzegui325.blog.163.com/blog/static/3542295201012033937546