所以我对过去的测验有疑问.只要C和D在同一个包中,以下代码就会编译
class C {
int i;
}
class D extends C {
void m() {
this.i = 3;
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么这是真是假?
它有一个默认的 访问修饰符.
访问修饰符:
public 世界级的可见性(所有课程,无处不在),protected 像默认,但也可以扩展类,default(你实际上不会写上面三个中的任何一个) - 包级别可见性.private 班级可见度.由于您的字段i没有明确写入的访问修饰符,因此暗示它具有默认访问模式.并且在包装内可见.
有关更多信息,请参阅控制对类成员的访问.
关于this关键字 - 它只是对当前对象的重新认识.
由于当前对象的类扩展了C它,它有它的方法和字段.并且因为i在整个包中可见,所以D可以使用它来访问它this.
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |