相关疑难解决方法(0)

子类是否继承私有字段?

这是一个面试问题.

子类是否继承私有字段?

我回答"否",因为我们无法使用"正常的OOP方式"访问它们.但是访谈者认为它们是继承的,因为我们可以间接访问这些字段或使用反射,它们仍然存在于对象中.

我回来后,在javadoc中找到以下引用:

超级私人会员

子类不继承其父类的私有成员.

你知道面试官的意见吗?

java oop inheritance private

233
推荐指数
8
解决办法
21万
查看次数

Java中的父类和子类可以具有相同的实例变量吗?

考虑这些类:

class Parent {
 int a;
}

class Child extends Parent {
 int a; // error?
}
Run Code Online (Sandbox Code Playgroud)

如果声明aChild没有给出编译错误,由于多次声明int a

java

15
推荐指数
3
解决办法
6150
查看次数

可以继承Java中的方法访问子类字段

我在理解继承时遇到了麻烦。在下面的代码中,为什么继承的方法不能访问子类中的字段?有什么方法可以访问子类字段而不覆盖继承的方法?

class Fish {
    private String fishType = "Fish";
    public String getFishType() {
        return fishType;
    }
}

class Marlin extends Fish {
    private String fishType = "Marlin";
}

public class InheritanceTest {
    public static void main(String[] args) {
        Fish fish1 = new Fish();
        Fish marlin1 = new Marlin();
        System.out.println(fish1.getFishType());
        System.out.println(marlin1.getFishType());
    }
}
Run Code Online (Sandbox Code Playgroud)

此代码打印

Fish
Fish
Run Code Online (Sandbox Code Playgroud)

但我期待

Fish
Marlin
Run Code Online (Sandbox Code Playgroud)

每个人似乎都是基于私有字符串来回答的,但是即使我将字段更改为公开字符串,我仍然会遇到问题。问题不在于继承私有字段。

请在下面查看更新的代码。

class Fish {
    public String fishType = "Fish";
    public String getFishType() {
        return fishType;
    }
}

class Marlin extends Fish …
Run Code Online (Sandbox Code Playgroud)

java methods inheritance

1
推荐指数
1
解决办法
1072
查看次数

标签 统计

java ×3

inheritance ×2

methods ×1

oop ×1

private ×1