多态是同一个行为具有多个不同表现形式或形态的能力。
多态是方法的多态。和属性无关。
一个对象的实际类型是确定的,但是可以指向对象的引用的类型有很多(父类)。
方式一:重写
方式二:接口
方式三:抽象类和抽象方法
例子
父类:
package demo04; public class Person { public void run(){ System.out.println("super,你倒是说句话呀!"); } }
子类:
package demo04; public class Student extends Person{ @Override public void run() { System.out.println("son,你不也没话说吗!"); } public void eat(){ } }
测试:
import demo04.Person; import demo04.Student; public class Application { public static void main(String[] args) { //一个对象的实际类型是确定的,但是指向的引用类型就不确定了,如父类的引用指向子类 Student s1=new Student(); Person s2=new Student(); Object s3=new Student(); s2.run(); s1.run(); } } 运行结果: son,你不也没话说吗! son,你不也没话说吗!