Objective c类的初始化
Objective c中實現類的初始化要先重載父類的init方法:
1.首先調用[super init]使用父類的方法進行初始化。將對象賦給self
2.假設self不為nil即父類初始化成功,接著進行本類的初始化
3.返回self給調用者
@implementation Test -(id)init {if(self = [super init]){//本類的初始化代碼//.......... }return self;} @end————————————————————————————————————————————————————————————————————————————
虛方法
1.調用時不看指針看對象。稱為虛方法
2.OC中全部的方法都是虛方法
3.父類的指針能夠指向子類對象
//父類指針指向子類對象,實際上仍然時調用子類card2中的打印方法,由于card1指針指向card2對象
這一點與C++里面也是非常類似的,OC中全部的對象都是通過指針來訪問的。這些指針對象擁有編譯時類型和執行時類型。
編譯時類型是靜態類型,在編譯階段編譯器僅僅是做簡單地類型檢查,宏替換,導入頭文件等動作,與聲明它時候的定義相關;執行時類型是動態類型。與它實際所指向的實例變量的類型有關,程序執行時才知道的類型。
編譯器在編譯階段時會進行語法檢查,因此盡管當父類指針指向子類的對象時,父類的.h聲明文件里未聲明的方法均不能直接調用。僅僅能通過OC的反射機制來訪問。如通過performSelector:@selector(SEL)來訪問,但編譯器此時還是會有警告的。此時調用運行的均為子類的方法。當且僅當這種方法在子類中沒有實現時才會調用父類自己的方法。
?
轉載于:https://www.cnblogs.com/jzdwajue/p/7170612.html
總結
以上是生活随笔為你收集整理的Objective c类的初始化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 集成对接项目的经验
- 下一篇: machine learning学习笔记