详细见菜鸟教程:http://www.runoob.com/java/java-polymorphism.html
前言
多态是同一个行为具有多个不同表现形式或形态的能力。
多态就是同一个接口,使用不同的实例而执行不同操作。
多态性是对象多种表现形式的体现。
多态的优点
- 1. 消除类型之间的耦合关系
- 2. 可替换性
- 3. 可扩充性
- 4. 接口性
- 5. 灵活性
- 6. 简化性
多态存在的三个必要条件
- 继承
- 重写
- 父类引用指向子类对象
简单demo:
/**
* 对象的多态性:
* 向上、向下转型的应用。
*
*/
class A{
public void tell1(){
System.out.println("A--tell1");
}
public void tell2(){
System.out.println("A--tell2");
}
}
class B extends A{
public void tell1(){
System.out.println("B--tell1");
}
public void tell3(){
System.out.println("B--tell3");
}
}
public class PolDemo {
public static void main(String[] args) {
//向上转型
// B b=new B();
// A a=b;
// a.tell1();//输出tell1()被重写的结果
// a.tell2();
//向下转型(前提:向上转型)
A a=new B();
B b=(B)a;
b.tell1();
b.tell2();
b.tell3();
}
}
运行结果:
B--tell1
A--tell2
B--tell3