这次接着我们上次面向对象的基础,来理解抽象类、接口、委托和事件。
一、抽象类
我们把实例化没有人任何意义的父类,改成抽象类。C#把类和方法声明为abstract,即抽象类和抽象方法。
抽象类要注意一下几点:第一、抽象类不能被实例化,例如动物实例化是没有意义的。第二、抽象方法是必须被子类重写的方法,不重写的话,它的存在是没有意义的。其实抽象方法可以看成是没有实现体的虚方法。第三、如果类中包含抽象方法,那么类就必须定义为抽象类,不论是否还包含其他一般方法。抽象类通常代表一个抽象概念,它提供一个继承的出发点,当设计一个新的抽象类时,一定是用来继承的。所以,在一个以继承关系形成的等级结构里面,树叶枝点应当是具体类,而树枝节点均应该是抽象类。
二、接口