xcode5
//导入类的头文件就可以使用子类和子类的父类
#import"SubClass.h"
intmain(intargc,constchar* argv[]) {
@autoreleasepool{
// insert code here...
NSLog(@"Hello, World!");
//创建子类的对象并分配内存
SubClass *son = [SubClass alloc];
//使用父类的属性
son.superProperty= 12;
int a = son.superProperty;
NSLog(@"%d",a);
//调用父类的方法
[son superMethod];
//当子类重写了父类的方法那么调用这个方法时将会优先重写的方法
//子类自己的属性和方法
son.subProperty= 15;
NSLog(@"%d",son.subProperty);
//总结;继承
// 1.子类继承父类继承类父类的属性和方法
// 2.子类可以扩展自己的属性和方法
// 3.子类可以重写父类的方法
//重写分为完全重写(完全重写父类的功能)和不完全重写(super关键字)
//子类的指针指向父类的内存
//会有警告不匹配的指针类型
Man *man = [People alloc];
man.name= @"People";
[man peopleMethod];
// //不可以使用子类的属性。编译的时候没问题,运行行的时候崩溃
// man.manName=@"Man";
// [man manMethod];
//父类的指针指向子类的内存
People *people = [Man alloc];
//可以使用父类的属性和方法无任何警告
people.name=@"People";
[people peopleMethod];
// //不能使用子类的属性和方法编译就报错:people中找不到这个属性
// people.manName = @"Man";
//ARC下:不能使用子类的方法 。报错:这个方法在people中没有声明
//非ARC下:可以使用子类的方法报警告:people可能不会响应这个方法
[people manMethod];
//总结:1.子类的指针指向父类的内存警告:指针内存不匹配,可以使用父类的属性和方法无任何警告,不可以使用子类的属性和方法编译的时候无错误,无警告,运行崩溃
// 2.父类的指针指向子类的内存:创建时无任何警告错误,可以使用父类的属性和方法无任何错误警告,不可以使用子类的属性。编译错误:这个方法在类中没有找到。
//在ARC下:不能使用子类的方法。报错:这个方法在people中没有声明
//非ARC下:可以使用子类的方法。报警告:people可能不会响应这个方法运行正确
// 3.OC语言具有运行时特性
//找ARC选择工程buildsrtting中搜gar