我们可以在 Java 中重写 private 或 static 方法吗
不可以,我们无法在 Java 中重写 private 或 static 方法。
Java 中的 private 方法对其他类不可见,其作用域仅限于声明它们的类。
示例
让我们看看当尝试重写 private 方法时发生的情况 -
class Parent {
private void display() {
System.out.println("Super class");
}
}
public class Example extends Parent {
void display() // trying to override display() {
System.out.println("Sub class");
}
public static void main(String[] args) {
Parent obj = new Example();
obj.display();
}
}输出
输出如下 -
Example.java:17: error: display() has private access in Parent obj.method(); ^ 1 error
该程序会引发一个编译时错误,表明 display() 在父类中具有 private 访问权限,因此无法在子类 Example 中被重写。
如果某个方法被声明为 static,则该方法是类的成员,而不是属于类的对象。该方法可以在不创建类对象的情况下调用。静态方法还可以访问类的静态数据成员。
示例
让我们看看当我们尝试在一个子类中重写一个 static 方法时发生的情况
class Parent {
static void display() {
System.out.println("Super class");
}
}
public class Example extends Parent {
void display() // trying to override display() {
System.out.println("Sub class");
}
public static void main(String[] args) {
Parent obj = new Example();
obj.display();
}
}输出
这会生成一个编译时错误。输出如下 -
Example.java:10: error: display() in Example cannot override display() in Parent void display() // trying to override display() ^ overridden method is static 1 error
广告
数据结构
网络
RDBMS
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP