虚方法出如今Java的多态特性中,java
父类与子类之间的多态性,对父类的函数进行从新定义。若是在子类中定义某方法与其父类有相同的名称和参数,咱们说该方法被重写 (Overriding)。在Java中,子类可继承父类中的方法,而不须要从新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想做必定的修改,这就须要采用方法的重写。方法重写又称方法覆盖。ide
当设计类时,被重写的方法的行为怎样影响多态性。方法的重写使得子类可以重写父类的方法。函数
当子类对象调用重写的方法时,调用的是子类的方法,而不是父类中被重写的方法。spa
Java虚方法你能够理解为java里全部被overriding的方法都是virtual的,全部重写的方法都是override的。设计
在JVM字节码执行引擎中,方法调用会使用invokevirtual字节码指令来调用全部的虚方法。对象
须要注意虚方法和抽象方法并非同一个概念继承