java多态的含义

  • 格式:pdf
  • 大小:48.51 KB
  • 文档页数:1

java多态的含义

java多态,也叫动态绑定,必须满⾜三个条件:

1、继承

2、⽅法重写

3、⽗类引⽤指向⼦类对象

class Father{

void print(){};

}

class Son extends Father{

void print(){System.out.println("⼦类中!");}

void show(){System.out.println("show 中!");}

}

class Demo{

public static void main(String args[]){

Father obj=new Son();

obj.print();

obj.show(); //这个调⽤会报错!

}

}

1 .如果你想实现多态,那么必须有三个条件,⽗类引⽤,⼦类对象,⽅法覆盖

你这⾥如果Fathor类有⼀个show()⽅法,那么形成⽅法覆盖,那么此时就可以这么写:obj.show(),此刻形成了多态.

2. 没有⽅法覆盖,那你这⾥只能解释为⽗类引⽤去访问⼀个⼦类的⽅法,当然,⽗类引⽤没有这么⼤范围的权限,当然会报错

PS:多态实际上是⼀种机制,在编译时刻,会⽣成⼀张虚拟表,来记录所有覆盖的⽅法,没有被覆盖的⽅法是不会记录到这张表的.若⼀个⽗类引⽤调⽤了没有覆盖的⼦类⽅法,那么是不符合该表的,那么编译时刻就会报错.

在执⾏程序的时候,虚拟机会去这张虚拟表中找覆盖的⽅法,⽐如引⽤中实际上存的是⼀个⼦类对象引⽤,那么就会去找⼦类中的相应的覆盖的⽅法来执⾏