面試小問題——什么是多態?


  在Java面試中,多態是一個被問到的頻率很高的一個概念。多態整理如下:

  一、什么是多態?

  概念:同一操作作用於不同的對象,可以有不同的解釋,產生不同的執行結果,這就是多態性。簡單的說:就是用基類的引用指向子類的對象。

  比如有一個父類superClass,它有2個子類subClass1subClass2superClass有一個方法 func(),兩個子類都重寫了這個方法。那么我們可以定義一個superClass的引用obj,讓它指向一個子類的對象,比如superClass obj = new subClass1();那么我們調用obj.func()方法時候,會進行動態綁定,也就是obj它的實際類型的func()方法,即subClass1func()方法。同樣你寫superClass obj = new subClass2()obj.func()其實調用的是subClass2func()方法。這種由於子類重寫父類方法,然后用父類引用指向子類對象,調用方法時候會進行動態綁定,這就是多態。多態對程序的擴展具有非常大的作用,比如你要再有一個subClass3,你需要改動的東西會少很多。

  二、多態有什么好處?

  1. 應用程序不必為每一個派生類編寫功能調用,只需要對抽象基類進行處理即可。大大提高程序的可復用性//繼承 
  2. 派生類的功能可以被基類的方法或引用變量所調用,這叫向后兼容,可以提高可擴充性可維護性 //多態的真正作用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM