天天看點

海綿寶寶幫你了解面向對象

淺談面向對象

引例:制作一個蟹黃堡

面向過程:放一個面餅–>放一片生菜–>放一片牛肉–>放一片芝士–>放一個面餅

面向對象:海綿寶寶.做蟹黃堡();

引例:把大象放進冰箱裡:

面向過程:打開冰箱門–>把大象放進去–>關閉冰箱門

面向對象:人.開門();

人.放入大象();

人.關門();

三大特征:封裝、繼承、多态

封裝

封裝,就是把客觀事物封裝成抽象的類,并且類可以把自己的資料和方法隻讓可信的類或者對象操作,對不可信的進行資訊隐藏。

舉例:有太多太多的人要吃蟹黃堡了,海綿寶寶忙不過來了,叫上了派大星幫忙。但是蟹老闆不願意告訴派大星蟹黃堡秘方。是以把蟹黃堡的秘方鎖在了櫃子裡,隻告訴派大星各種材料按什麼順序放置,便可制作一個蟹黃堡就可以了。

繼承

繼承,指可以讓某個類型的對象獲得另一個類型的對象的屬性的方法。

舉例:客人的需求越來越多,不止想吃蟹黃堡,還想要巨無霸蟹黃堡。此時,我們隻需要在原來的蟹黃堡上加入兩塊肉餅即可。他具有蟹黃堡的屬性,同時又具有自己特有的屬性。

多态

多态,是指一個類執行個體的相同方法在不同情形有不同表現形式。多态機制使具有不同内部結構的對象可以共享相同的外部接口。

舉例:

有一位顧客點了一個漢堡,隻有當顧客選好漢堡種類,并且由章魚哥傳達給海綿寶寶的時,才能确定他具體的種類(蟹黃堡?巨無霸蟹黃堡?等等)

比如客人點的是蟹黃堡,

此時,(繼承)海綿寶寶便會制作蟹黃堡。蟹黃堡,繼承了漢堡的特點。

(重寫)同時又重寫了裡面的一些漢堡的制作方法。(比如漢堡的制作方法就沒有放一片芝士這個步驟,但是蟹黃堡需要)

(向上轉型)當海綿寶寶使用 漢堡.制作();這個方法時,在制作時就會加上芝士。(也就是運用的蟹黃堡的制作方法)