1、类方法 :Class Method 有时被称为静态方法,类方法可以独立于实例对象而执行。在使用类方法时要注意以下几点:
2、实例方法: 必须由类的实例对象调用,可以访问属性,实例变量,同样可以访问类对象,使用限制相对于类方法较少。
总的来说: self 会优先调用本类中的方法, super 会优先调用父类方法。但是, self 是指向本类的指针,是类的隐藏参数,指向当前调用方法的对象(类对象或者实例对象), super 却不是指向父类的指针,只是一个编译器标识符,其在运行时中与self相同,指向 同一个消息接受者 ,只是 self 会优先在当前类的methodLists中查找方法,而 super 则是优先从父类中查找, 向super发送消息是一种调用继承链上的超类定义的 方法实现 的方法。
结果分析:
经过上面的例子再回来看self和super的实现原理可能更加好理解:
这样结合上述例子和self和super的原理就会很容易明白为什么 [self class] 和 [super class] 输出结果会是一样的,同时在 BaseViewController 的 viewDidLoad 中 [self class] 和 [super class] 输出都是子类类对象了
iOS中关于类方法和实例方法及self和super
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)