java的多态
多态是同一个行为具有多个不同表现形式或形态的能力。
多态是方法的多态。和属性无关。
一个对象的实际类型是确定的,但是可以指向对象的引用的类型有很多(父类)。
多态存在的三个必要条件
- 继承
- 重写
- 父类引用指向子类对象:Parent p = new Child();
多态的实现方式
方式一:重写
方式二:接口
- 生活中的接口最具代表性的就是插座,例如一个三接头的插头都能接在三孔插座中,因为这个是每个国家都有各自规定的接口规则,有可能到国外就不行,那是因为国外自己定义的接口类型。
- java中的接口类似于生活中的接口,就是一些方法特征的集合,但没有方法的实现。具体可以看 java接口 这一章节的内容。
方式三:抽象类和抽象方法
例子
父类:
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,你不也没话说吗!

浙公网安备 33010602011771号