Java如果不希望某类中的public方法被重写,应改?

本文探讨了在面向对象编程中防止方法被重写的三种有效策略:使用final修饰类阻止继承、使用final修饰方法禁止重写及利用static修饰方法使其不可重写。这三种策略有助于保护方法的实现不受子类的影响。

问题抛出

如题:假定期望设计一个类A,类中包含一个必须要拥有public属性方法f().当不希望其他程序重写此方法时,请列举三种策略?

方法一:用final修饰类,被修饰的类不能派生子类。
而继承是重写的基础,该类不能派生子类即不能被继承故而类的方法也不能被重写。(多说两句:final修饰的类被称为最终类,表明该类不能派生子类)
方法二 :用final修饰成员方法,被修饰的方法(称为最终方法)不能被重写。
例如:像Math类的方法都是最终方法,最终方法代表着成熟,不需要修改和完善了,像Math类就符合这个特点。
方法三:用static修饰成员方法
静态方法不能被重写。静态成员(方法或属性)是类的成员存放在栈中,类可以直接调用(是类的静态成员,当然对象也可以调用,只是说你可以使用而已);实例成员是对象的成员,存放在堆中只能被对象调用,
重写的目的在于根据创造对象的所属类型不同而表现出多态。因为静态方法无需创建对象即可使用。没有对象,重写所需要的“对象所属类型” 这一要素不存在,因此无法被重写。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

明月几时有666

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值