继承

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

你可能感兴趣的:(继承)