> 文章列表 > 子类覆盖父类方法

子类覆盖父类方法

子类覆盖父类方法

子类覆盖父类方法需要满足以下条件:

1. 继承性 :子类必须继承父类,父类的方法在子类中必须可见。

2. 访问权限 :子类方法的访问权限不能小于父类方法的访问权限,但可以相同或子类访问权限更大。

3. 方法签名 :子类方法和父类方法必须具有相同的函数名称和参数列表。

4. 返回类型 :子类的返回值类型必须是父类返回类型的子类型(JDK 1.5之后支持协变返回类型)。

5. 静态方法 :如果父类和子类都是静态方法,子类隐藏父类的方法,而不是重写父类方法。

6. final方法 :子类可以覆盖父类中的`final`方法,但不能覆盖`private`方法。

7. 覆盖权限 :子类覆盖父类方法时,子类方法的权限必须大于等于父类方法的权限。

8. 重载与重写 :如果方法名称相同但参数列表不同,则只是方法的重载,而非重写。

9. super关键字 :可以使用`super`关键字来访问父类中被重写的方法。

需要注意的是,子类覆盖父类方法时,子类对父类同名的方法将不能再做访问,但可以覆盖父类中的`final`方法和`static`方法。

其他小伙伴的相似问题:

子类覆盖父类方法后如何访问?

C++子类覆盖父类方法有何特点?

如何判断子类方法是否覆盖父类?