里氏替换原则
父类对象是不能替换子类对象的.这种 特性被称作 " 里氏替换原则"
里氏替换原则的应用
里氏替换原则是软件设计应该遵守的重要原则之一.有了 里氏替换原则,才使继承复用成为可能.只有当子类可以替换父类时,软件的功能不受影响,父类才能真正被复用,而子类也能够在父类的
基础上增加新的行为
public class Brid{
public double Speed{get;set}
public void Fly(){
}
}
public class Ostrich:Brid{
} is和as操作符的使用
is操作符用于检查对象和指定的类型是否兼容
if(empls[i] is SE){
}
as操作符主要用于二个对象之间的类型转换
父类类型作为参数
里氏替换原则指出子类对象可以代替父类对象.那么在开发程序时可以编写以父类类型作为形式参数的方法,在实际调用时传入子类对象,从而实现多态.
子类重写父类的虚方法,其中有二种方式
创建父类对象,用子类对象实例化这个父类对象
把父类类型作为行参类型,他的子类对象作为实参传入
运行时,根据实际创建对象的类型决定执行哪个方法
抽象类和抽象方法
为什么使用抽象类和抽象方法
抽象方法是一个没有实现的方法,通过在定义方法时增加关键字abstract可以声明抽象方法
语法
访问修饰符 abstract 返回类型 方法名();
含有抽象方法的类必然是抽象类,同样我们用abstract关键字来定义一个抽象类
语法
访问修饰符 abstract class 方法名();
抽象类提供抽象方法,这些方法只有定义,如何实现都由城乡类的非抽象子类完成,那么就可以将TrafficTool类改为抽象类
抽象类和抽象方法的应用
如何实现抽象方法
当从一个抽象父类的一个子类时,子类将继承父类的所有特征.包括他未实现的抽象方法
抽象方法必须在其子类中实现,除非他的子类也是抽象类,与子类重写父类的虚方法一样,在子类中也是使用override关键字来重写抽象方法的
语法
访问修饰符 override 返回类型 方法名()
抽象方法的应用场合
抽象类,抽象方法和虚方法都可以实现多态
虚方法和抽象方法的区别
虚方法 抽象方法
用virtual修饰 用abstract修饰
要有方法体,即使是一个符号 不允许有方法体
可以被子类override 必须被子类override
除了密封类都可以定义 只能在抽象类中定义
面向对象的三大特性
封装:保证对象自身数据的完整性和安全性
继承:建立类之间的关系,实现代码的复用,方便系统的扩展
多态:相同的方法调用可实现不同的实现方法