iOS 多態(tài)

定義

多態(tài):不同對象以自己的方式響應(yīng)相同的消息的能力叫做多態(tài)。

生活中:

人可以指教師、學(xué)生、醫(yī)生等等。

程序中:

父類指針指向子類對象。

好處

多態(tài)的主要好處就是簡化了編程接口。它容許在類和類之間重用一些習(xí)慣性的命名,而不用為每一個(gè)新加的函數(shù)命名一個(gè)新名字。這樣,編程接口就是一些抽象的行為的集合,從而和實(shí)現(xiàn)接口的類的區(qū)分開來。

注意

1.沒有繼承就沒有多態(tài)。
2.父類類型的變量, 不能直接調(diào)用子類特有的方法。
3.OC支持方法名的多態(tài),但不支持參數(shù)和操作符的多態(tài)。

實(shí)現(xiàn)

首先創(chuàng)建父類 People 和 子類 Student,然后在 People 父類中添加屬性和方法,并分別在兩個(gè)類中實(shí)現(xiàn)該方法。
調(diào)用代碼如下:

// 用父類People指針指向子類Student對象
People *p = [[Student alloc] init];
// 此時(shí),p 對象就已經(jīng)是一個(gè) Student 對象

// 下面的屬性與方法在父類中需要聲明,才能用父類指針直接調(diào)用
// 如果父類不存在,則需要強(qiáng)制將類型轉(zhuǎn)為 Student 才可以使用
p.name = @"小明";
p.mathScore = 66;
p.englishScore = 88;
// 只調(diào)用了 Student 類中的實(shí)現(xiàn),并沒有調(diào)用 People 類中的實(shí)現(xiàn),也證明了多態(tài)的實(shí)現(xiàn)。
[p calculateAverageScore];
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 簡述 多態(tài)一般都要跟繼承結(jié)合起來說,其本質(zhì)是子類通過覆蓋或重載,父類的方法,來使得對同一類對象同一方法的調(diào)用產(chǎn)生不...
    Cheriez閱讀 2,649評(píng)論 0 5
  • 一、什么是多態(tài) 多態(tài):不同對象以自己的方式響應(yīng)相同的消息的能力叫做多態(tài)。 由于每個(gè)類都屬于該類的名字空間,這使得多...
    紫風(fēng)_781d閱讀 989評(píng)論 0 0
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,421評(píng)論 0 2
  • 面向?qū)ο笾饕槍γ嫦蜻^程。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,218評(píng)論 0 4
  • 人生最難得的就是保持樂觀的心態(tài),生活最難得的就是懂得珍惜。這世上,誰都不可能真正的擁有,不要太過執(zhí)著失去,能夠失去...
    小妖精藍(lán)雪兒閱讀 209評(píng)論 0 6

友情鏈接更多精彩內(nèi)容