java多态的含义

it2022-05-11  56

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

转载于:https://www.cnblogs.com/it-note/archive/2013/04/09/3009314.html


最新回复(0)