当子类在超类中受到保护时,子类如何使变量成为私有的?

a3.*_*ity 2 java inheritance

子类"私有化"一个受超类保护的变量的目的是什么?例如:-

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)

Mar*_*nik 8

你没有将变量私有化; 您创建了具有相同名称的子类自己的变量.现在,您的类有两个具有相同简单名称的变量,并且都可以访问:

this.name
Run Code Online (Sandbox Code Playgroud)

((Creature)this).name
Run Code Online (Sandbox Code Playgroud)