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:多态实际上是⼀种机制,在编译时刻,会⽣成⼀张虚拟表,来记录所有覆盖的⽅法,没有被覆盖的⽅法是不会记录到这张表的.若⼀个⽗类引⽤调⽤了没有覆盖的⼦类⽅法,那么是不符合该表的,那么编译时刻就会报错.
在执⾏程序的时候,虚拟机会去这张虚拟表中找覆盖的⽅法,⽐如引⽤中实际上存的是⼀个⼦类对象引⽤,那么就会去找⼦类中的相应的覆盖的⽅法来执⾏