1、里氏转换:
a)子类可以赋值给父类
b)父类中实例一个对象,该对象是子类的对象,即父类中装的是子类的对象,子类不过是以父类的形式展现,父类可以强制转换为子类。
2、实现形式:
Person p1=new student();----里氏转换(多态)
Person p2=(Person) teacher; 向下转型,强制转换(不属于多态)
比如以上就是多态,多态是一个左编译右运行得行为。最终调用的还是子类中的方法,但是多态只是适用于方法和构造函数,不适用于属性。
判断一个类a是否是;另一个类A的子类
a instance A,如果是子父类关系,则返回True,否则返回false。
3、实现多态的方式
实现多态的三种体现就是,重写父类的方法,抽象类,接口。
用virtual/abstract修饰父类,子类用overrider修饰子类