xcode5
//導(dǎo)入類的頭文件就可以使用子類和子類的父類
#import"SubClass.h"
intmain(intargc,constchar* argv[]) {
@autoreleasepool{
// insert code here...
NSLog(@"Hello, World!");
//創(chuàng)建子類的對(duì)象并分配內(nèi)存
SubClass *son = [SubClass alloc];
//使用父類的屬性
son.superProperty= 12;
int a = son.superProperty;
NSLog(@"%d",a);
//調(diào)用父類的方法
[son superMethod];
//當(dāng)子類重寫了父類的方法那么調(diào)用這個(gè)方法時(shí)將會(huì)優(yōu)先重寫的方法
//子類自己的屬性和方法
son.subProperty= 15;
NSLog(@"%d",son.subProperty);
//總結(jié);繼承
// ???????1.子類繼承父類繼承類父類的屬性和方法
// ???????2.子類可以擴(kuò)展自己的屬性和方法
// ???????3.子類可以重寫父類的方法
//重寫分為完全重寫(完全重寫父類的功能)和不完全重寫(super關(guān)鍵字)
//子類的指針指向父類的內(nèi)存
//會(huì)有警告不匹配的指針類型
Man *man = [People alloc];
man.name= @"People";
[man peopleMethod];
// ???????//不可以使用子類的屬性质蕉。編譯的時(shí)候沒問題着茸,運(yùn)行行的時(shí)候崩潰
// ???????man.manName=@"Man";
// ???????[man manMethod];
//父類的指針指向子類的內(nèi)存
People *people = [Man alloc];
//可以使用父類的屬性和方法無任何警告
people.name=@"People";
[people peopleMethod];
// ???????//不能使用子類的屬性和方法編譯就報(bào)錯(cuò):people中找不到這個(gè)屬性
// ???????people.manName = @"Man";
//ARC下:不能使用子類的方法 。報(bào)錯(cuò):這個(gè)方法在people中沒有聲明
//非ARC下:可以使用子類的方法報(bào)警告:people可能不會(huì)響應(yīng)這個(gè)方法
[people manMethod];
//總結(jié):1.子類的指針指向父類的內(nèi)存警告:指針內(nèi)存不匹配,可以使用父類的屬性和方法無任何警告类早,不可以使用子類的屬性和方法編譯的時(shí)候無錯(cuò)誤,無警告,運(yùn)行崩潰
//? ? 2.父類的指針指向子類的內(nèi)存:創(chuàng)建時(shí)無任何警告錯(cuò)誤搏色,可以使用父類的屬性和方法無任何錯(cuò)誤警告,不可以使用子類的屬性券册。編譯錯(cuò)誤:這個(gè)方法在類中沒有找到频轿。
//在ARC下:不能使用子類的方法。報(bào)錯(cuò):這個(gè)方法在people中沒有聲明
//非ARC下:可以使用子類的方法烁焙。報(bào)警告:people可能不會(huì)響應(yīng)這個(gè)方法運(yùn)行正確
// 3.OC語言具有運(yùn)行時(shí)特性
//找ARC選擇工程buildsrtting中搜gar