深入理解面向對象的三大基本特征


我們都知道面向對象有三個基本特征:封裝,多態和繼承。

封裝:

  我先來援引一 位網友寫的段子:基本的變量已經不再浮游於一大段一大段的程序中了,它們已經放棄了(其實是程序員不用這種方式了)這種自由自在的存在方式,而是安穩的寄 居於龐大而蹣跚的“對象”內部,與外界隔開來,通過迂回曲折的間接途徑與外部世界聯系和通信。而這些對象,就是它們這些基本變量的生存機器!

  在面向過程的開發中,變量被暴露在整個程序中,不小心的一個修改就可能導致整個程序出錯。 所以封裝有利於我們讓自己的程序更健壯。這個大家很好理解。

繼承:

  提供了同一類對象共性的處理方法,子類繼承父類共性的東西。 這樣有利於代碼的復用性,這個大家肯定也很好理解。

多態:

  估計大家不好理解的就是這個概念了,我當初也是這樣的,而且一直以為函數的重載也是多態,最近看了某些大神的文章之后才理解了一點點。

  不同類對象對相同行為的不同反應,我們就把它叫做多態。 與繼承相對應的是多態提供了對同一類對象差異性的處理方法,子類通過多態重寫從父類繼承的方法來實現子類的差異性。

  我來舉一個簡單的例子大家可以理解一下:

class Aninal{ 叫;}//叫是動物的一個方法

class 貓 extend Animal{叫;}

class 狗 extend Animal{叫;}

Animal 狗 = new 狗();

Animal 貓 = new 貓();

狗.叫();

貓.叫();

  這里的多態的態應該指的是形態,比如狗可以有Animal的形態,真正本質是將對象的型別忘掉,模糊了父類和子類之間的差異,用相同的形式去表達不同的行為! 這樣有利於代碼在復用性的基礎上讓子類表現自己的差異性。


免責聲明!

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



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