子类"私有化"一个受超类保护的变量的目的是什么?例如:-
abstract public class Creature{
protected String name;
abstract public String getName();
abstract public void setName(String newName);
}
public class Girafee extends Creature {
private String name;
public Girafee() {
}
@Override
public String getName() {
return this.name;
}
@Override
public void setName(String newName) {
this.name = newName;
}
}
Run Code Online (Sandbox Code Playgroud)
你没有将变量私有化; 您创建了具有相同名称的子类自己的变量.现在,您的类有两个具有相同简单名称的变量,并且都可以访问:
this.name
Run Code Online (Sandbox Code Playgroud)
与
((Creature)this).name
Run Code Online (Sandbox Code Playgroud)