父类 SuperClass
子类 SubClass
根类 NSobject
除了
私有的实例变量外 子类拥有父类的
全部内容
继承具有传递性B继承A,C继承B,则C也有A的
全部内容
+ 类方法,类来调用, 不能写实例变量 意思是:不需要创建对象 , 就可以调用的方法( java中 称用类调用的方法为
静态方法)
- 实例方法,对象来调用
//
所有
*
都代表是
对象
// 用 %@ 用来打印所有 对象类型
//- 号方法只能 对象 来调用
//+ 号方法只能使用 类名 来调用
// 用 %@ 用来打印所有 对象类型
//- 号方法只能 对象 来调用
//+ 号方法只能使用 类名 来调用
初始化方法是 - 号方法
id可以代表
所有的
对象类型, 可以用 id 定义 所有的对象类型 - (id)
self 只有一个作用: 调用
自身的方法
self 谁调用,
self就是那个
对象本身 是 指向自己的本身
self 始终代表调用 本self所在的方法中的
对象
super 在OC中就一个作用: 调用
父类中的方法(非自身) 不是指针
一个类 可以有
多个 初始化方法
其中一定会被调用的初始化方法 称为 指定初始化方法
方法的
调用 在OC中称为
消息表达式[
receiver message]开发主要依靠
消息机制支撑
父类
和
子类
的
指定初始化方法中每个实例变量都要写
(在子类的指定初始化方法中勿忘了写
self = [
super
initWithName:aName
level:aLevel
memory:aMemory
version:aVersion
type:aType];此为父类调用自己的初始化方法,此意义为子类父类
各自赋自己的值(或者说自己只给自己的实例变量初始化),互不干扰)
其他初始化方法在{ }中都可以直接写
return [
self
initWithColor:aColor
weight:aWeight
size:aSize
thick:
0
function:
nil
name:
nil
user:
nil];因为都要调用
指定初始化方法,省略了好多与初始化方法中一样的代码
另外: 输出函数的格式,决定了子类和父类的输出内容,子类可重写父类的方法,调用将执行自己(子类)的方法, 而且也不需要声明
便利构造器可以定义相应的类的对象,然后返回此对象,或者直接用 类调用(指定)初始化方法, 也可以使用自动释放
要想利用release ; retain ; retainCount; autoRelease;
必须把XCode的ARC模式改为NO