Java 继承的getter方法是否需要重写?

Java 继承的getter方法是否需要重写?,java,inheritance,Java,Inheritance,我想知道,如果你用与父类同名的字段创建一个子类,那么在子类对象上调用的getter方法是访问它的字段还是访问父类的字段?或者这些方法是否需要再次写入并重写?函数需要再次写入并重写。请参见此示例: static class A { private int i = 0; public A() { } public A(int i) { this.i = i; } public int getI() { return

我想知道,如果你用与父类同名的字段创建一个子类,那么在子类对象上调用的getter方法是访问它的字段还是访问父类的字段?或者这些方法是否需要再次写入并重写?

函数需要再次写入并重写。请参见此示例:

static class A {
    private int i = 0;

    public A() {
    }

    public A(int i) {
        this.i = i;
    }

    public int getI() {
        return this.i;
    }
}

static class B extends A {
    private int i;

    public B(int i) {
        this.i = i;
    }
}

public static void main(String[] args) {
    B b = new B(5);

    System.out.println(b.getI());
}
输出:0,因为它正在使用A.getI,它引用A中的i字段

现在使用相同的代码,但使用B.getI:


输出:5。

您可以根据自己的要求将其作为代码编写,并且可以自己检查,对吗?
static class A {
    private int i = 0;

    public A() {
    }

    public A(int i) {
        this.i = i;
    }

    public int getI() {
        return this.i;
    }
}

static class B extends A {
    private int i;

    public B(int i) {
        this.i = i;
    }

    @Override
    public int getI() {
        return this.i;
    }
}
public static void main(String[] args) {
    B b = new B(5);

    System.out.println(b.getI());
}