1.什么是多态
同一操作,作用于不同的对象,可以有不同的解释,产生不同的执行结果,就叫做多态
2.多态分类
编译时多态、运行时多态
编译时多态:也叫设计时多态,这种多态实际上就是方法重载
运行时多态:代码在被运行时,系统根据调用该方法的实例的类型来决定选择调用哪个方法,被称为运行时多态,体现在方法重写
ps:区分编译与运行,
当你一段代码写完之后一般会经历两个阶段:
一、编译阶段
使用指令:javac
这个阶段,JVM首先把代码加载完成,然后开始检查语法。如果出现语法错误则提示错误。这个阶段提示的错误我们一般称为编译器错误!
二、运行阶段
使用指令:java
这个阶段,JVM将执行java代码,这个时期出现的错误我们一般称为运行期错误!
编译器错误一般都是语法错误!运行期错误一般都是程序内部(或者程序逻辑)错误!
2.多态条件
编译时多态,具体可看方法重载的概念
运行时多态,需要满足三个条件:要有继承(包括接口的实现)、要有重写、父类引用指向子类对象
3.多态解释
运行时多态的解释:运行时多态是指程序中定义的引用变量所指向的具体类型和b.通过该引用变量发出的方法调用在编程时并不确定,而是在程序运行期间才确定,即一个引用变量倒底会指向哪个类的实例对象,该引用变量发出的方法调用到底是哪个类中实现的方法,必须在由程序运行期间才能决定.
4.多态好处
可替换,可拓展,灵活
接口性,多态是超类或者接口通过方法签名,向子类提供了一个共同方法声明,由子类来完善或者覆盖它而实现的