A a = b 这个是将子类的对象赋值给父类对象,父类可以代表子类行使权力;a.F2();这个调用的是子类的方法;为什么会出现这种现象是因为:在面向对象里面虚方法也是实现多态的一种;对于虚方法父类可以有方法体,可以有具体的实现代码,但是如果子类继承了并重写了,那么这无论是子类还是父类在调用这个方法的时候都只是调用重写的方法;