一、多态是什么?
多态是同一个行为具有多个不同表现形式或形态的能力,就是用一个接口,使用不同的实例而执行不同的操作。
例如 我们在word文件中使用打印功能 :
1 .接口为彩色打印机时打印出来的效果是彩色的。
2.接口为黑白打印机时打印出来的效果是黑白的。
二、多态的实现
多态的存在条件
存在父类型和子类型,父类型的引用指向子类实例对象,子类重写父类方法,不同的子类对父类的同一方法给出不同的实现。
多态的程序实例
设计一个程序要实现人们展示武术的方法,由于每个人掌握的武术是不同的,所以不同人调用展示武术的方法时输出结果也不同。
下面通过一个程序来演示:
abstract class human{
public abstract void kongfu();
}
class mabaoguo extends human{
public void kongfu() {
System.out.println("混元形意太极拳,闪电五连鞭");
}
}
class nianqingren extends human{
public void kongfu() {
System.out.println("左正蹬,右鞭腿,左刺拳");
}
}
public class Duotai{
public static void main(String[]args) {
human mabaoguo=new mabaoguo();
human nianqingren=new nianqingren();
mabaoguo.kongfu();
nianqingren.kongfu();
}
}
父类human引用了不同的子类对象mabaoguo和nianqingren,调用kongfu()方法时输出了不同的结果。
三、多态的特点
多态的优点:
- 消除类型之间的耦合关系
- 可替换性
- 可扩充性
- 接口性
- 灵活性
- 简化性
多态存在的三个必要条件:
继承
class mabaoguo extends human
重写
public void kongfu() {
System.out.println("混元形意太极拳,闪电五连鞭");
public void kongfu() {
System.out.println("左正蹬,右鞭腿,左刺拳");
}
父类引用指向子类对象
human a=new mabaoguo();