Java 多态
1.什么是Java多态?
可以简单的认为是同一消息,对不同的对象做出的多种不同的行为方式
2.多态的作用
消除类型之间的紧耦和
3.多态的好处
可替换;可扩展性;灵活性
4.多态的实现机制
重写:父类与子类之间多态的一种体现(同名,同参)
重载:同一个类中多态的体现(同类中,同名不同参,返回类型不同不可以作为是否是重载的唯一依据)
5.实现多态的必要条件
继承;重写;向上转型:需要将子类的引用赋给父类对象,只有这样1引用才能具备调用父类的方法和子类的方法。
向上转型:
class Animal{
}
class Bird extends Animal{
}
public static void main(String[] args){
Animal b=new Bird(); //向上转型
}
6.Java多态在JVM里的实现
Animal b=new Bird();
Animal是引用类型,被存放在本地方法表中
Bird:被new出来的实例对象被放在堆中,具体的Bird的类型数据存放在方法区中
过程:
①在JVM的本地方法表中找到Animal的接口指针
②根据本地方法表中的指针,找到Bird的实例数据,以及类型指针
③根据类型指针,在方法区中找到对象的类型数据