gur*_*e94 1 java inheritance android private chronometer
我正在尝试在android中的Chronometer类中添加一个方法.它将开始时间存储在此变量中:
private long mBase;
Run Code Online (Sandbox Code Playgroud)
所以我以为我能做到这一点
public class MyChronometer extends Chronometer{
public void reset(){
long now = SystemClock.elapsedRealtime();
this.mBase = now;
}
}
Run Code Online (Sandbox Code Playgroud)
但Android Studio告诉我mBase无法找到.为什么是这样?我做错了什么?根据我对Java中继承的理解,如果我扩展一个类,那么我将扩展我扩展的类的所有方法和变量,然后我可以添加它.这是不正确的?mBase即使它是私有的,这也不包括变量吗?
编辑:基本上我正在尝试为其创建一个setter函数 mBase
Mar*_*oun 12
我引用了教程 - 超类中的私有成员:
子类不继承
private其父类的成员.然而,如果超类具有public或protected用于访问它的方法private领域,这些也可以由子类所用.
这意味着您无法直接访问这些private字段,但您可以使用允许您访问这些字段的方法.此表也可能有用:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
874 次 |
| 最近记录: |