虛方法出如今Java的多態特性中,java
父類與子類之間的多態性,對父類的函數進行從新定義。若是在子類中定義某方法與其父類有相同的名稱和參數,咱們說該方法被重寫 (Overriding)。在Java中,子類可繼承父類中的方法,而不須要從新編寫相同的方法。但有時子類並不想原封不動地繼承父類的方法,而是想做必定的修改,這就須要採用方法的重寫。方法重寫又稱方法覆蓋。ide
當設計類時,被重寫的方法的行爲怎樣影響多態性。方法的重寫使得子類可以重寫父類的方法。函數
當子類對象調用重寫的方法時,調用的是子類的方法,而不是父類中被重寫的方法。spa
Java虛方法你能夠理解爲java裏全部被overriding的方法都是virtual的,全部重寫的方法都是override的。設計
在JVM字節碼執行引擎中,方法調用會使用invokevirtual字節碼指令來調用全部的虛方法。對象
須要注意虛方法和抽象方法並非同一個概念繼承