多态的定义
按照字面的意思就是一种事物存在多种形态。在面向对象语言中,接口的多种不同的实现方式即为多态。
多态的前提
1. 必须有关系,继承,实现
2. 要有覆盖的存在
多态的作用
1. 提高代码的扩展性,父类代码可以在子类调用
2. 父类定义的内容不能使用子类特有的内容
如何定义
//前提,zi 继承了 fu
class Fu(){
}
class Zi() extends Fu{
}
//父类 类名 = new 子类();
Fu f = new Zi(); //这就是多态
即,新建一个子类的方法,然后将子类方法向上转型。
调用多态时出现的情况
成员变量:
父类没有的话就会报错(不管子类是否存在),父类有就会调用父类的变量。
成员函数:
如果父类没有子类存在的函数,即子类的特有函数,父类不能使用。
如果父类存在子类也存在的函数,运行时会调用子类的函数。
如果父类存在子类没有的函数,运行时会调用父类的函数。
静态函数:
不涉及多态性,可以直接用“ 类名 . 静态方法() ”调用,运行父类的函数。
如果用的多态定义的想要使用子类特有的方法需要向下转型(用 “Fu instanceof Zi” 来判断能否向下转型)