gpt4 book ai didi

java - Java 中的继承和私有(private)变量

转载 作者:行者123 更新时间:2023-11-29 09:43:26 25 4
gpt4 key购买 nike

我正在尝试向 android 中的 Chronometer 类添加一个方法。它将开始时间存储在此变量中:

private long mBase;

所以我觉得我可以做到这一点

public class MyChronometer extends Chronometer{

public void reset(){
long now = SystemClock.elapsedRealtime();
this.mBase = now;
}
}

但是 Android Studio 告诉我找不到 mBase。为什么是这样?我做错了什么?根据我对 Java 中继承的理解,如果我扩展一个类,那么我将拥有我扩展的类的所有方法和变量,然后我可以添加到这些方法和变量中。这是不正确的吗?这不会包括 mBase 变量,即使它是私有(private)的吗?

编辑:本质上,我正在尝试为 mBase

创建一个 setter 函数

最佳答案

我引用了 tutorial - Private Members in a Superclass :

A subclass does not inherit the private members of its parent class. However, if the superclass has public or protected methods for accessing its private fields, these can also be used by the subclass.

这意味着您不能直接访问private 字段,但是您可以使用允许您访问它们的方法。这table也可能有帮助:

                  Access Levels
------------+---------+---------+-----------+------
Modifier | Class | Package | Subclass | World
------------+---------+---------+-----------+------
public | Y | Y | Y | Y
protected | Y | Y | Y | N
no modifier | Y | Y | N | N
private | Y | N | N | N

关于java - Java 中的继承和私有(private)变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31086146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com