打个比方:
一个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关键字
-
使用场景:当从父类继承的某个方法不适合子类,可以在子类中重写父类的这个方法。
属性访问与方法重写
本文探讨了在面向对象编程中使用property进行属性访问时如何通过重写set方法来增加合法性检查,确保数据的有效性。此外,还介绍了子类如何通过方法重写来自定义行为,同时提供了使用super关键字调用父类方法的示例。
839

被折叠的 条评论
为什么被折叠?



