多态-----优化设计
生活中的多态
同一种事物,由于条件不同,产生的结果也不同。例如:打印机
程序中的多态-------父类引用,子类对象
同一个引用类型,使用不同的实例而执行不同的操作
如何实现多态
- 使用继承
- 子类重写父类的方法
- 父类引用子类
例:Instrument类--乐器类--父类
Piano类,Violin类为子类,如果再加乐器的子类,不影响make方法
public static void make(Instrument instrument){
instrument.plsy();
}
public static void main(String[] args) {
Piano piano=new Piano();
Artist.make(piano);
Violin violin=new Violin();
Artist.make(violin);
}
多态的优点:
- 可替换性,多态对已存在的代码具有可替换性
- 可扩充性。多态对代码具有可扩充性。增加新的子类不影响已存在类的多态性、继承性,以及其他特性的运行和操作。实际上增加子类更容易获得多态功能。
- 接口性。多态是超类通过方法签名,向子类提供了一个共同接口,由子类来完善或者覆盖它而实现的。
- 灵活性。它在应用中体现了灵活多样的操作,提高了使用效率。
- 简化性。多态简化了应用软件的代码编写和修改过程,尤其是在处理大量对象的运算和操作时,这个特点尤为突出和重要。
值得注意的是,多态并不能解决提高执行速度的问题,因为它基于动态装载和地址引用或称动态绑定。