類和接口的繼承與實現


  Java中普通類只支持單繼承,不支持多重繼承,也就是說在java中一個類只能有一個父類。可是在實際應用中,我們又往往需要使用多重繼承來解決問題。那這不是前后矛盾了么?又說不能多重繼承,又說要使用多重繼承來解決問題。
      其實這是有原因的的,下面我們就來具體說說。
  首先, 我們來說說為什么Java不支持多重繼承。先假設Java支持多重繼承,注意是假設,事實並不支持的。舉個例子, 類C繼承類B和類A,A、B都有一個返回值、方法名、參數都完全相同的而內部實現不同的方法,那么類C就不知道該繼承哪個類里的方法,從而出現問題。所以為了避免此類問題Java不支持多重繼承。
    既然 Java不支持多重繼承,那我們遇到需要使用多重繼承來解決的問題,我們又該怎么辦呢?為此,Java提出了接口的思想,接口本質上也是一個類,只不過它所有的方法都是抽象的,也就是說所有的方法都只是做了聲明而沒有具體的實現內容。為了與普通的類做出區別, 這種特殊的類我們不稱為類,而命名為接口。類可以繼承多個接口,因為對於前面舉的例子,由於方法都是抽象沒有實現的,類繼承哪個接口的方法都無所謂了,都 只是個聲明而已。不過為了避免與Java不支持多重繼承混淆, 我們把類繼承接口不稱作繼承而稱作實現,也就是說一個類可以實現多個接口。同時當類實現接口 時,是要對接口聲明的抽象方法具體實現的,所以類實現接口的稱呼也顯得更加貼切。
    同理, 接口也可以繼承接口的,而且一個接口可以繼承多個接口,因為方法都是抽象的,所以不會引起‘不知道該繼承哪個方法’的問題。
    綜述,普通類和接口本質上是一樣的,原則是不能出現繼承方法混亂。


免責聲明!

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



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