這樣理解物件導向的封裝,繼承,多型是否正確?

時間 2021-06-01 22:24:24

1樓:那羅延

你把物件導向的類理解為模版是沒問題的,二級模版擁有初始模版的屬性,所以可以看作繼承,這也沒問題。

但是封裝和多型的理解是有問題的!

封裝,是針對成員屬性的訪問。封裝的思想,是對成員屬性的訪問必須有所限制!在你的例子裡,什麼是模版的成員屬性啊?

初始模版的屬性成員有形狀和左上角字串,如果他們被定義為私有屬性,這就是封裝的體現。所以封裝要求任何人都不得直接訪問乃至修改模版的形狀和左上角字串。並不是說不能訪問不能修改,要訪問或者修改,必須通過成員函式來。

多型,是針對對成員函式呼叫。二級模版才能真正把人民幣印出來,而每印出一張人民幣都是該類的乙個例項或者物件。你需要乙個容器去承載這些物件(可以理解為乙個放置人民幣的盒子),比如指標,其實這個容器只要按照初始模版那麼設計就行了(就是初始模版型別指標),因為初始模版就決定了紙幣大小形狀,所以作為容器是沒問題的。

你的初始模版裡有乙個函式專門用來讀取紙幣上的面值,但是在初始模版裡沒有實現,二級模版實現了。別忘了因為封裝的關係,你不可以直接讀取紙幣任何資訊,必須通過成員函式。

但是多型還是沒有結束,因為如果要真正理解多型,你還需要創造乙個新的模版,我們叫新二級模版,這個模版用來印美金!在新二級模版裡,我們有初始模版的一切特徵,請不要糾結美金和人民幣大小不一樣這種問題。。。並實現了這個讀取面值的成員函式。

可以想象,對於裝在同乙個容器裡的紙幣們,你使用該容器的讀取面值函式,如果是人民幣,得到是將會是人民幣的面值加上人民幣單位,如果是美金,得到的將會是美金的面值加上美金單位。

2樓:「已登出」

這明明反了,不同面值的錢是不同的物件/類,同面值的多種形態才是多型。

第二版錢本來就不應該派生自第一版,「一張第二版人民幣」is a(n instance of)「第一版人民幣」?

像話嗎?

結構大概是這樣

一塊派生自人民幣,兩塊派生自人民幣

第一版一塊派生自一塊,第二版一塊派生自一塊第一版兩塊派生自兩塊,第二版兩塊派生自兩塊嗯……

3樓:蕭大俠

有手工師傅魯班,呼叫手段是付款,封裝就是你等著收成品,他絕不會在你面前做東西。繼承是魯班師傅會把基本的東西教給徒弟,多型是每個徒弟又有自己特色的東西。

4樓:kaiba

物件是對現實生活中事物的抽象,根據研究領域的不同,抽象的層次不同。

在一些領域,錢只需要乙個數值就可以了;而在其它一些領域,需要有尺寸,重量,顏色,哪年產,面值等,這些都是根據研究領域來決定的。

5樓:

封裝:錢能防偽,你不用管具體是什麼黑科技,你只要知道可以通過一定的手段鑑別假幣。

繼承:繼承本質上是「A 繼承 B,那麼 A 是乙個 B」,所以紙鈔是貨幣,硬幣也是貨幣,這倆都繼承貨幣;刷卡走銀行餘額不一定是,但我們可以定義乙個支付介面,貨幣可以實現支付,銀行卡也可以實現。如果你用鴨子型別,那麼銀行卡也是(正色

多型:你拿錢去自動售貨機買東西,都是付錢,紙鈔走紙鈔口,硬幣走投幣口,你只要管錢夠不夠就行。

怎樣理解或評價物件導向的程式設計技術?

神捕手 物件導向是指一種程式設計范型,同時也是一種程式開發的方法。人,車輪都可以被稱為 類 而 物件 就是 類 的集合,是程式的基本單元,將程式和資料 封裝其中,以提高軟體的重用性 靈活性和擴充套件性。物件導向的好處是以客觀的角度觀察問題,各個 物件 被稱為客體,任何功能的實現都有一系列的客體,解決...

什麼是物件導向程式設計?它與面向過程程式設計的異同有哪些?

張昊 樓上們解釋的通俗且專業,我就說一下我的簡單理解 物件導向 物件就是物體,這種程式設計思想就是設定乙個有一定功能的物體,然後利用這個物體的功能做你想做的事情。這個物體有attributes,比如名字啊,年齡啊等等等等,有methods,比如吃喝拉撒睡等等等等,功能 methods 面向過程 你想...

如何理解 在物件導向程式設計的時候,方法或者函式的引數最好是介面或者抽象類 ?

行雲 這樣做的目的是減少函式自身模組對外部的依賴,函式的引數型別越簡單,越抽象,意味著對引數型別的依賴越小,函式內部就越不需要關注引數的型別細節。 進擊的小比克 其實他的意思是使用那個類的父類引用或者是那個類所實現或者說是繼承的介面的引用,因為這樣有利於後續程式的擴充套件,就是實現多型這種東西。比如...