多态的原理是当方法被调用时,无论对象是否被转换为其父类,都只有位于对像继承链最末端的方法实现会被调用,也就是说,虚方法是按照其运行时类型,而非编译时类型进行动态绑定调用的。
八、重构
C#允许把类和方法声明为abstract,即抽象方法
注意:
- 抽象类不能被实例化
- 抽象方法是必须被子类重写的方法
- 如果类中包含抽象方法那么类就必须定义为抽象类,不论是否还包括其他一般方法
- 我们应该考虑让抽象类拥有尽可能多的共同代码,拥有尽可能少的数据。
抽象类通常代表一个抽象概念,他提供一个继承的触发点,当设计一个新的抽象类时,一定是用来继承的 ,所以在一个以继承关系形成的等级结构里,树叶节点应该是具体类,树枝节点均应该是抽象类。
九、接口
关键字interface
接口是把隐式公共方法和属性组合起来,以封装特定功能的集合,一旦实现了接口,类就可以支持接口所指定的所有属性和成员,声明接口和声明抽象类完全相同,但不允许提供接口中任何成员不能的执行方式,实现接口的类,就必须要实现接口的所有方法和属性。










