Java中父类被那些修饰符定义后不能被重写了

问问,哪些情况下不能使用Java重写呀,我只知道父类中final修饰的方法不能

该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:

除了父类中被 `final` 修饰的方法不能被重写以外,还有以下情况下子类也不能重写父类中的方法:

1. 父类中被 `private` 修饰的方法不能被子类重写,因为子类无法继承父类的私有方法。
2. 父类中被 `static` 修饰的方法不能被子类重写,因为静态方法是类级别的方法,不属于对象,子类无法重写父类的静态方法。
3. 父类中被 `final` 修饰的类方法(即被 `static final` 修饰的方法)不能被子类重写,因为它们是类级别的常量,不属于对象,子类无法重写父类的类方法。

注意,如果子类中的方法和父类中的方法具有相同的名称、参数列表和返回类型,但是访问修饰符不同,那么这并不是重写,而是重载(overload)。

另外,需要注意的是,在 Java 5 中引入了注解 `@Override`,可以用来标记子类方法是重写父类方法。使用该注解可以让编译器在编译期间检查子类是否正确地重写了父类的方法,如果没有正确重写,编译器将会报错。使用 `@Override` 注解可以提高代码的可读性和可维护性。

如果以上回答对您有所帮助,点击一下采纳该答案~谢谢

父类的私有方法,也就是用private修饰的方法无法重写

被final修饰的类无法被继承,自然也无法被重写。
被final修饰的方法无法被重写。
被static修饰的方法属于类级别,也无法被重写。