多态性是OOP中的一个重要特性,主要是用来实现动态联编的,换句话说,就是程序的最终状态只有在执行过程中才被决定而非在编译期间就决定了。这对于大型系统来说能提高系统的灵活性和扩展性。
java中如何实现多态?使用多态的好处?
引用变量的两种类型:
编译时类型(模糊一点,一般是一个父类)
由声明时的类型决定。
运行时类型(运行时,具体是哪个子类就是哪个子类)
由实际对应的对象类型决定。
多态的存在要有3个必要条件:
①要有继承②要有方法重写③父类引用指向子类对象
1.1多态的概述
同一个对象,在不同时刻表现出来的不同形态
举例:猫
我们可以说猫是猫:猫 cat = new 猫();
我们也可以说猫是动物:动物 animal = new 猫();
这里猫在不同的时刻表现出来了不同的形态,这就是多态
1.2多态的前提和体现
①有继承/实现关系
②有方法重写
③有父类引用指向子类对象
1.3多态的好处和弊端
多态的好处:提高了程序的扩展性
具体体现:定义方法的时候,使用父类作为参数,将来在使用的时候,使用具体的子类型参与操作
多态的弊端:不能使用子类的特有功能
1.4多态中的转型
①向上转型
从子到父
父类引用指向子类对象
②向下转型
从父到子
父类引用转为子类对象
多态:
对应同一个指令(调用同一个名称的方法),不同的对象给予不同的反应(不同的方法实现)
规范(多态实现的前提):
1、必须要有继承关系
2、子类方法必须重写父类的方法
3、父类引用指向子类对象(子类实例)
多态的目的:
1、为了提高代码的扩展性和维护性
2、方便代码逻辑的编写
多态的两种表现形式:
1、父类作为方法的参数
2、父类作为方法的返回值类型
引用类型的转换跟基本数据类型的转换类似ÿ