java中,涉及到变量的时候,父类中的方法要加static修饰吗?用idea做演示
时间: 2024-09-07 19:03:32 浏览: 38
spring static静态方法里面注入bean空指针解决
Java中,当涉及变量时,父类的方法不需要添加`static`修饰。`static`修饰的是与类关联的方法,而不是特定的对象实例。如果不使用`static`,方法是针对每个对象实例独立定义的。
在Java中,即使父类有非静态方法,子类仍然可以通过继承来访问这些方法,但无法直接重写它们,除非子类也是静态方法。这是因为静态方法属于类本身,而非类的实例,所以它们的行为不会因子类实例化而改变。
下面是一个简单的例子,展示了这一点[^1]:
```java
public class Parent {
public void nonStaticMethod() {
System.out.println("This is a non-static method in the parent.");
}
}
public class Child extends Parent {
// 子类无法直接重写非静态方法,但可以在自己的类中另定义同名方法
// public void nonStaticMethod() {} // 这会引发编译错误
@Override
public void nonStaticMethod() {
System.out.println("This is an overridden non-static method in the child.");
}
}
public class Main {
public static void main(String[] args) {
Parent parentObj = new Parent();
parentObj.nonStaticMethod(); // 打印 "This is a non-static method in the parent."
Child childObj = new Child();
childObj.nonStaticMethod(); // 打印 "This is an overridden non-static method in the child."
}
}
```
阅读全文