多态
什么是多态
- 可以动态编译:类型
- 即同一方法可以根据发送对象的不同而采用多种不同的行为方式
- 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多
- 多态存在的条件
- 有继承关系
- 子类重写父类方法
- 父类引用指向子类对象
- 注意:多态是方法的多态,属性没有多态性
- 对象能执行那些方法,主要看对象左边的类型,和右边关系不大
public class Application {
public static void main(String[] args) {
//子类能调用到的方法都是自己的或者继承父类的
Student s1 = new Student();
//父类可以指向子类,子类重写了父类方法就会执行父类方法
//父类中如果没有,需要进行强制转换
Person s2 = new Student();
}
}
总结:
- 父类引用指向子类对象
- 把子类转换为父类,向上转型
- 把父类转换为子类,向下转型(强制转换)
- 方便方法的调用,减少重复的代码