1樓:
物件導向的三個基本特徵是:封裝、繼承、多型。
封裝封裝最好理解了。封裝是物件導向的特徵之一,是物件和類概念的主要特性。
封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。
繼承物件導向程式設計 (oop) 語言的一個主要功能就是「繼承」。繼承是指這樣一種能力:它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。
通過繼承建立的新類稱為「子類」或「派生類」。
被繼承的類稱為「基類」、「父類」或「超類」。
繼承的過程,就是從一般到特殊的過程。
要實現繼承,可以通過「繼承」(inheritance)和「組合」(composition)來實現。
在某些 oop 語言中,一個子類可以繼承多個基類。但是一般情況下,一個子類只能有一個基類,要實現多重繼承,可以通過多級繼承來實現。
繼承繼承概念的實現方式有三類:實現繼承、介面繼承和可視繼承。
ø 實現繼承是指使用基類的屬性和方法而無需額外編碼的能力;
ø 介面繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力;
ø 可視繼承是指子窗體(類)使用基窗體(類)的外觀和實現**的能力。
在考慮使用繼承時,有一點需要注意,那就是兩個類之間的關係應該是「屬於」關係。例如,employee 是一個人,manager 也是一個人,因此這兩個類都可以繼承 person 類。但是 leg 類卻不能繼承 person 類,因為腿並不是一個人。
抽象類僅定義將由子類建立的一般屬性和方法,建立抽象類時,請使用關鍵字 inte***ce 而不是 class。
oo開發正規化大致為:劃分物件→抽象類→將類組織成為層次化結構(繼承和合成) →用類與例項進行設計和實現幾個階段。
多型多型性(polymorphisn)是允許你將父物件設定成為和一個或更多的他的子物件相等的技術,賦值之後,父物件就可以根據當前賦值給它的子物件的特性以不同的方式運作。簡單的說,就是一句話:允許將子類型別的指標賦值給父類型別的指標。
實現多型,有二種方式,覆蓋,過載。
覆蓋,是指子類重新定義父類的虛擬函式的做法。
過載,是指允許存在多個同名函式,而這些函式的參數列不同(或許引數個數不同,或許引數型別不同,或許兩者都不同)。
其實,過載的概念並不屬於「物件導向程式設計」,過載的實現是:編譯器根據函式不同的參數列,對同名函式的名稱做修飾,然後這些同名函式就成了不同的函式(至少對於編譯器來說是這樣的)。如,有兩個同名函式:
function func(p:integer):integer;和function func(p:
string):integer;。那麼編譯器做過修飾後的函式名稱可能是這樣的:
int_func、str_func。對於這兩個函式的呼叫,在編譯器間就已經確定了,是靜態的(記住:是靜態)。
也就是說,它們的地址在編譯期就繫結了(早繫結),因此,過載和多型無關!真正和多型相關的是「覆蓋」。當子類重新定義了父類的虛擬函式後,父類指標根據賦給它的不同的子類指標,動態(記住:
是動態!)的呼叫屬於子類的該函式,這樣的函式呼叫在編譯期間是無法確定的(呼叫的子類的虛擬函式的地址無法給出)。因此,這樣的函式地址是在執行期繫結的(晚邦定)。
結論就是:過載只是一種語言特性,與多型無關,與物件導向也無關!引用一句bruce eckel的話:
「不要犯傻,如果它不是晚邦定,它就不是多型。」
那麼,多型的作用是什麼呢?我們知道,封裝可以隱藏實現細節,使得**模組化;繼承可以擴充套件已存在的**模組(類);它們的目的都是為了——**重用。而多型則是為了實現另一個目的——介面重用!
多型的作用,就是為了類在繼承和派生的時候,保證使用「家譜」中任一類的例項的某一屬性時的正確呼叫。
2樓:鬍子邋遢
你好,物件導向的三大特性是:封裝性,繼承以及多型,謝謝,
3樓:匿名使用者
封裝性,繼承性和多型性。
c++物件導向程式設計三大特點及其目的
4樓:墨汁諾
三大特點:封bai
裝、繼承、多型。du
封裝指zhi的是將物件的屬性(
dao資料成員)和行為(成
版員函式權)**為一個邏輯單元的機制
繼承可以減少**重用。
多型本質就是允許父類的指標指向子類物件的地址當軟體產品在未完成時、未被使用時或者帶著各種各樣的錯誤釋出時,問題就會出現。另外,使用者需求的改變已經成為一個重要問題。多份關於軟體實現的報告顯示,在軟體產品釋出和使用之前,需要仔細進行質量評估。
5樓:罒黯星馳丶
三大特點:封裝、繼承、多型。
封裝指的是將物件的屬性(資料成員)和行為(成員函式)**為一個邏輯單元的機制。
繼承可以減少**重用。
多型本質就是允許父類的指標指向子類物件的地址
物件導向的三大特性,請用**說明三大特性
c++作為面嚮物件語言的三個基本特徵:封裝,繼承和————
6樓:黑白灰的色彩
c++物件導向的三個基本特徵是:封裝、繼承、多型。其中,封裝可以隱藏實現細節,使得**模組化;繼承可以擴充套件已存在的**模組(類);它們的目的都是為了**重用。
而多型則是為了實現介面重用!
【封裝】
封裝可以隱藏實現細節,使得**模組化;封裝是把過程和資料包圍起來,對資料的訪問只能通過已定義的介面。物件導向計算始於這個基本概念,即現實世界可以被描繪成一系列完全自治、封裝的物件,這些物件通過一個受保護的介面訪問其他物件。在物件導向程式設計上可理解為:
把客觀事物封裝成抽象的類,並且類可以把自己的資料和方法只讓可信的類或者物件操作,對不可信的進行資訊隱藏。
【繼承】
它可以使用現有類的所有功能,並在無需重新編寫原來的類的情況下對這些功能進行擴充套件。其繼承的過程,就是從一般到特殊的過程。
通過繼承建立的新類稱為「子類」或「派生類」。被繼承的類稱為「基類」、「父類」或「超類」。要實現繼承,可以通過「繼承」(inheritance)和「組合」(composition)來實現。
在某些 oop 語言中,一個子類可以繼承多個基類。但是一般情況下,一個子類只能有一個基類,要實現多重繼承,可以通過多級繼承來實現。
繼承概念的實現方式有三類:實現繼承、介面繼承和可視繼承。
1. 實現繼承是指使用基類的屬性和方法而無需額外編碼的能力;
2. 介面繼承是指僅使用屬性和方法的名稱、但是子類必須提供實現的能力;
3. 可視繼承是指子窗體(類)使用基窗體(類)的外觀和實現**的能力。
多型什麼是多型?
多型性(polymorphisn)是允許你將父物件設定成為和一個或更多的他的子物件相等的技術,賦值之後,父物件就可以根據當前賦值給它的子物件的特性以不同的方式運作。簡單的說,就是一句話:允許將子類型別的指標賦值給父類型別的指標。
7樓:杜爺1號
封裝、繼承、多型
主要是類。
封裝也就是類的私有化。
以下為c++
比如class time
;繼承就是保留父類的屬性,開擴新的東西。
class land_vehicle:public time{這樣就繼承了父類time
多型多型性是允許將父物件設定成為和一個和多個它的子物件相等的技術,比如parent:=child;
8樓:扈懷煒
物件導向三個特點。 封裝。 繼承。 多型。
9樓:匿名使用者
多型 。
C 物件導向程式設計題目,物件導向程式設計題目,c
峰吹過地無痕 外迴圈 即for int i 0 i 顯然迴圈次數依次為n,n 1,n 2,1.而s的執行次數顯然等於內迴圈 總迴圈次數之和即s n n n 1 n 2 1 說到這就有點像等差數列了 s 數列的個數 即外迴圈次數n 首項即n 末項即1 2s n n 1 2 一 include int ...
C 程式設計,物件導向的成績管理,C 程式設計 用物件導向的方法求圓面積 要求編寫一個圓Circle類
篤俠 寫這個程式有點耗時間,而且任務也不是很明確,比如 獲取全校最高分的學生資訊 這個 最高分 是指某一門課程的,還是全部課程的總成績? 時空越野 if you pay 10 for me,i will do this 使用c 物件導向的程式設計方法,找出十個學生成績中的最高者,並輸出 jk5蘇月的...
c語言是程序導向的還是物件導向的?
c語言是程序導向的。程序導向是著重於其中程式設計的演算法 語言的運用,如設計不同功能的函式。c 是物件導向的。c語言能以簡易的方式編譯 處理低階儲存器。c語言是僅產生少量的機器語言以及不需要任何執行環境支援便能執行的高效率程式設計語言。c語言的特點 1 具有較好的可移植性。c語言是程序導向的程式語言...