在用set和get方法的时候person.age=10;实际调用的是[person stage:10]; NSLog(@"%d",person.age)实际调用的是[person age];
不使用get和set方法可以使用@property int a,b; @synthesize a,b;
使用get和set的方法作用是隐藏成员变量,过滤对成员变量操作的数据,对象点操作。
类方法中能调用类方法,不能调用对象方法,在对象方法中能调用对象方法,不能调用类方法。
self在对象方法中表示的当前对象,在类方法中表示的是当前的类
类方法和对象方法可以同名。
super 可以调用父类中的对象方法。
继承:代码复用。
oc成员属性没有设置特定的访问权限,默认是@protected--被继承的时候对子类完全可见,父类的所有资源都可以被子类使用。
子类不能定义父类已有的成员属性。
在子类中可以重写父类的方法
多态:必须继承,必须重写父类的方法。子类的对象赋给父类的时候,如果子类中有的方法就会调用子类中的方法,如果子类中没有该方法,则调用父类中的方法。但是如果父类中没有,子类中有就会出错,因为父类的对象只能调用父类中的方法。
NSLog(@"%@",person);//默认输出的是对象所属的类和地址
打印对象的所有信息:
重写之后:
-(NSString *)description;{
NSLog(@'%@----%d",_name,_age);
}
NSLog(@"%@",person);//输出的是一个上面的name和age的值。会默认调用description函数。//重写之后才会调用,不然不会调用。