Java面向对象系列(10)- 什么是多态
多态
- 即同一方法可以根据发送对象的不同而采取不同的行为方式
- 一个对象的实际类型是确定的,但可以指向对象的引用类型有很多
- 多态存在的条件
- 有继承关系
- 子类重写父类方法
- 父类引用指向子类对象
- 注意:多态是方法的多态,属性没有多态性
- instanceof

package oop.demo06; public class Person { public void run(){ System.out.println("Person Run"); } }
package oop.demo06; public class Student extends Person { @Override public void run() { System.out.println("Student Run"); } public void eat(){ System.out.println("Student Eat"); } }
package oop; import oop.demo05.A; import oop.demo05.B; import oop.demo06.Person; import oop.demo06.Student; public class Application { public static void main(String[] args) { //一个对象的实际类型是确定的 //new Student(); //new Person(); //可以指向的引用类型就不确定了:父类的引用指向子类 //Student能调用的方法都是自己的以及继承父类的 Student s1 = new Student(); //Person 父类型,可以指向子类,但不能调用子类都有的方法 Person s2 = new Student(); Object s3 = new Student(); s1.run(); s2.run(); s1.eat(); s2.eat();//不能调用子类都有的方法 //对象能执行哪些方法,主要看对象左边的类型和右边的关系不大 } }
多态注意事项
- 多态是方法的多态,属性没有多态
- 父类和子类,有联系,类型转换
- 存在条件:继承关系,方法需要重写,父类引用指向子类对象!Father f1 = new Son()
什么情况下方法不能重写
- static方法,属于类,它不属于实例
- final常量
- private方法,私有的

浙公网安备 33010602011771号