【发布时间】:2011-11-12 22:33:49
【问题描述】:
这对于经验丰富的 Java 开发人员来说可能很简单,但我似乎无法弄清楚。我从这里读了一篇文章。代码是
View v = new View(this) {
@Override
protected void onDraw(Canvas canvas) {
System.out.println("large view on draw called");
super.onDraw(canvas);
}
};
这是一个 Android 问题。在这里,用户创建了一个视图实例并在一行中覆盖了一个方法。这种编码有名称吗?
我的第二个疑问是,他覆盖了另一个包中的受保护方法。不是受保护的意味着包私有。我知道这会奏效,因为我试过了,但我就是不知道为什么会奏效。那么为什么这段代码有效呢?
在询问之前我确实尝试过用谷歌搜索并在 SO 中搜索,但无法找到答案。
【问题讨论】: