Java中的多态
1、多态的体现
父类的引用指向了自己的子类对象 父类的引用也可以接收自己的对象
2、多态的前提
必须是类与类之间只有关系,要么继承或实现 通常还有一个前提,存在覆盖
3、多态的好处
多态的出现大大的提高了程序的扩展性
4、多态的弊端
只能使用父类的引用访问父类的成员
对于抽象类和接口,有许多类实现这个接口(或者继承这个抽象类)。
在调用的时候,用父类引用指向子类对象的方法。然后,调用对象的方法,编译器就会自动根据这个对象实际属于哪个实现类,
来调出这个类对于接口或者抽象类的具体实现。
一、Java引用变量的类型
Java中引用变量有两个类型:
1、编译时类型,由声明该变量时使用的类型决定;
2、运行时类型,由实际赋给该变量的对象决定;
在编译时类型与运行时类型不一致时,就可能出现——多态
二、什么是多态
多态就是“多种形态“;在程序运行过程中才决定用哪个方法,多态性是允许你将父类对象设置成和它的一个或多个子对象相等的技术,赋值后,父对象就可以根据当前赋值给它的子对象的特性运作,即为多态。
多态是面向对象编程领域的核心概念。(面向对象三大特性:封装,继承,多态)
注意:重载方法在编译期间就确定了,是静态的;方法重载与多态无关,真正与多态相关的是重写(覆盖Override);
三、向上转型
子类是一种特殊的父类,Java中允许把一个子类对象直接赋给一个父类引用变量,无需类型强制转换,就被称为向上转型,这个过程是由系统自动完成的。
四、多态产生的必要条件
1、要有继承
2、要有重写(覆盖Override)
3、子类对象赋给父类引用变量(父类引用指向子类对象)