iOS-OC为什么需要重写setter或getter方法?

打个比方:

一个person类中有一个属性age,那么如果用property声明后,set跟get方法仅仅只是做一个_age = age.但是你想想如果你在person类中new一个对象p,那么我可不可以写成 p setAge = -10 ?

一个人的年龄肯定不会有-10岁,如果重写set方法你就可以在set方法中写成

if(age <= 0){

age = 1;

}

也就是说当你给age赋值小于或等于0的时候,age会自动变成1,一个人的年龄是1岁,也比-10岁来的合理.


另一种场合:

子类重写父类中的方法:

在子类中实现与父类中同名的方法,称之为方法重写;

重写以后当给子类发送这个消息的时候,执行的是在子类中重写的那个方法,而不是父类中的方法。

如果想在子类中调用被子类重写的父类的方法,可以通过super关键字

使用场景:当从父类继承的某个方法不适合子类,可以在子类中重写父类的这个方法。




你可能感兴趣的:(OC)