深入理解多态
里氏替换和多态应用
1.里氏替换原则是软件设计应该遵守的重要原则之一.有了里氏替换原则,才使继承复用成为可能,只有当子类可以替换掉父类时,软件的功能不受影响,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为.
2.is 和 as 操作符的使用
is操作符用于检查对象和指定的类型是否兼容.
as操作符主要用于两个对象之间的类型转换
父类类型作为参数
里氏替换原则指出子类对象可以替换父类对象,那么在开发程序时可以编写以父类类型作为形式参数的方法,在实际调用时传入子类对象,从而实现多态.
用虚方法实现多态的基本步骤如下.
(1.)子类重写父类的虚方法,其中有两种方式
创建父类对象,用子类对象实例化这个父类对象.
把父类类型作为形参类型,它的子类对象作为实参传入.
(2)运行时,根据实际创建对象的类型决定执行哪个方法.
抽象类和抽象方法
抽象方法是一个没有实现的方法,通过在定义方法时增加关键字abstract可以声明抽象方法,其语法如下:
访问修饰符 abstract 返回类型 方法名();
注意,抽象方法没有闭合的大括号,而是直接跟了一个分号";",也就是说,它没有包括方法执行逻辑的方法体.
含有抽象方法的类必然是抽象类,同样,我们用abstract关键字来定义一个抽象类,其语法如下.
访问修饰符 abstract class类名{}
抽象类和抽象方法的应用
如何实现抽象方法
当从一个抽象父类派生一个子类时,子类将继承父类的所有特征,包括它未实现的抽象方法,抽象方法必须在其子类中实现,除非它的子类也是抽象类.与子类重写父类的虚方法
一样,在子类中也是使用override关键字来重写抽象方法的.
访问修饰符 override 返回类型 方法名()
面向对象的三大特征
到此为止,面向对象编程中三个非常重要的特征——封装、继承、多态,我们已经全部学了,总结如下:
封装:保证对象自身数据的完整性和安全性。
继承:建立类之间的关系,实现代码复用,方便系统的扩展.
多态:相同的方法调用可实现不同的实现方式.
里氏替换原则:子类对象可以替换父类对象;反过来,父类对象不能代替子类对象
抽象方法时一个未实现的方法,他用abstract关键字修饰,含有抽象方法的类必然是抽象类.
使用抽象方法和虚方法都可以实现多态性.
抽象类不能被实例化,不能使密封的或静态的.
抽象类的抽象方法要在其子类中通过override关键字重写,除非它的子类也是抽象类.
面向对象的三大特性是封装、继承、和多态。
is 操作符用于检查对象和指定的类型是否兼容. as 操作符主要用于对象之间的类型转换.

浙公网安备 33010602011771号