多态就是一个父类类型的变量指向子类类型的对象,但是在运行的时候是表现出子类的特征的,在多态中,只能直接调用的是父类中的方法,子类中的方法不能直接调用。
为什么要出多态?出多态的原因是?
java代码需要编译,在编译时,允许分类对象指向子类对象,该对象表现出父类的特征,这叫编译时类型;在运行时表现出子类的特征,这叫运行时类型。
多态在调用方法时,只能调用父类的方法,运行时再运行子类的方法。
在明确的知道某个变量是某个子类类型的时候,可以运用强制类型转换(强转);强转只是转换了编译时的类型,并不能转换运行时类型。
例:Teacher t =(Teacher)p;
多态的前提:
1.具有子父类或者实现关系
2.方法的重写
3.父类引用指向子类对象
访问修饰符
private私有 只有当前类中可以访问
默认的,同一个包可以访问
protected受保护的,子类可以访问
public公有的,所有类中可以访问