我們都知道面向?qū)ο笥腥筇匦裕悍庋b、繼承、多態(tài)。但是 他們都是為了解決什么樣的問題,都有什么體現(xiàn)呢?
封裝
封裝其實(shí)是為了解決程序安全的問題,私有屬性公有方法,對(duì)于一個(gè)函數(shù),一個(gè)類,一個(gè)框架而言是不能把所有的信息暴露給你去獲取或者修改了,這樣可能會(huì)導(dǎo)致函數(shù)、框架的不穩(wěn)定。
繼承
說到繼承我很容易就想到了繼承遺產(chǎn)。。繼承也比較好理解,就是繼承父類的變量和函數(shù),擁有父類的特性,自己再實(shí)現(xiàn)部分功能。所以他其實(shí)就是解決了代碼的復(fù)用問題。不用為擁有部分相同功能的類去寫重復(fù)代碼。
多態(tài)
父類類型的引用指向子類類型的對(duì)象,其實(shí)我感覺這個(gè)多態(tài)在某種意義上是要基于繼承去實(shí)現(xiàn)的,他是為了解決程序的拓展問題的,不用因?yàn)樾略隽四承┕δ苋ゴ罅康男薷拇a。那么什么情況下才算是多態(tài)或者說什么才是多態(tài)呢?當(dāng)然是發(fā)生重寫、重載和我們開頭所說的父類類型的引用指向子類類型的對(duì)象,這種情況下就被認(rèn)為是多態(tài)。例如咱們常說的面向接口編程。