- super在类方法中, 一定会调用父类的类方法
super在对象方法中, 一定会调用父类的对象方法
可以利用super在任意方法中调用父类中的方法
self关键字如何使用?
- 如果self在对象方法中, 那么self就代表调用当前对象方法的那个对象
- 如果self在类方法中, 那么self就代表调用当前类方法的那个类
- 总结:
- 我们只用关注self在哪一个方法中 , 如果在类方法那么就代表当前类, 如果在对象方法那么就代表"当前调用该方法的对象"
super使用场景?
答: 子类重写父类的方法时想保留父类的一些行为
也就是说如果子类在调用的父类的某个方法的时候想要保留父类中的一些设置的话,就需要调用父类的该方法用于保存父类中添加的一些默认的(原有的)一些属性的设置
重点注意:
- class: 是一个获取的方法,用来获取方法调用者类
superclass: 是一个获取的方法,用来获取方法调用者的 父类
super:注意super不是一个指针,super只是编译指示器
super: 仅仅是让方法调用者去调用父类方法,它只是一个编译器指令,而不是一个指针(其实本质还是子类对象本身,而不是父类对象).一定要注意:super其实就是子类对象(self本身),而不是父类对象(super它是一个编译指示器,告诉编译器调用自己的父类的相应方法.如果self表示的对象那么super表示的就是调用父类的对象方法,如果self表示的是当前类,那么super表示的就是调用父类的类方法)
//注意:self本身就是一个强指针,而super不是