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

来源:互联网 发布:拍照解题的软件 编辑:程序博客网 时间:2024/05/16 12:45

问题抛出

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

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