課程來(lái)自慕課網(wǎng)Visitor.zc老師
封裝
- 訪問(wèn)修飾符
@interface MyClass : NSObject
{
// 成員變量訪問(wèn)修飾符
// 默認(rèn) - @protected
// @public - 公有恒削,在類內(nèi)類外都可以使用和繼承
@public
int _classInt;
// @private - 私有柿赊,在類內(nèi)可以使用,類外無(wú)法使用或繼承
// @pretected - 受保護(hù)祭务,在類內(nèi)可以使用恭垦,類外無(wú)法使用文兢,可以被繼承
// @package - 框架權(quán)限,在框架內(nèi)相當(dāng)于受保護(hù)餐弱,在框架外相當(dāng)于私有
}
@property (nonatomic,strong)NSString *className;
// 方法沒(méi)有訪問(wèn)修飾符 導(dǎo)入頭文件并在頭文件中聲明方法宴霸,則可以在類外被使用
- (void)report;
@end
- 使用指向來(lái)調(diào)用類中的共有變量
int main(int argc, const char * argv[]) {
@autoreleasepool {
MyClass *mc = [[MyClass alloc] init];
mc.className = @"我的類";
// 使用指向來(lái)調(diào)用類中的公有成員變量
mc->_classInt = 1001;
[mc report];
return 0;
}
}
繼承
- 父類中的私有成員變量無(wú)法被繼承
- 父類中沒(méi)有聲明的方法無(wú)法被繼承
- 父類中的方法調(diào)用了父類中的私有成員變量,子類繼承了父類的方法膏蚓,私有成員變量的操作依舊有效
多態(tài)
- 方法重寫(修改父類中的方法)
- 不支持方法重載(函數(shù)名一樣瓢谢,參數(shù)返回值類型不同)
- 父類類型的變量可以接受子類類型