大家好!以下代码我调试通过的,问题是如果将 类aaa中的 protected 改成 private 后,如何修改其他代码,谢谢指导!class aaa
{ protected String name;
protected String location; public aaa(String name,String address)
{
this.name=name;
this.location=address;
} public String toString()
{
return name+"在"+location;
}}class bbb extends aaa
{
private int population; public bbb(String name,String location)
{
super(name,location);
population=2;
}

public bbb(String name,String location,int population)
{
super(name,location);
this.population=population+10000;
}

public void setPopulation(int population)
{
this.population=population;
} public int getPopulation()
{
return population;
}

public String toString()

{
return name+"in"+location+":人口数量"+population+"\n";
}
}class useX1
{
public static void main(String args[]) 
{
bbb b1=new bbb("aaa","bbb");
System.out.println(b1);
bbb b2=new bbb("ccc","ddd",31);
System.out.print(b2);
}
}

解决方案 »

  1.   

    那就在bbb中完成原来需要aaa协助完成的初始化工作
    但这样就舍弃了父类class bbb  {
    private int population;

    private String name; private String location; public bbb(String name, String location) {
    // super(name, location);
    this.name = name;
    this.location = location;
    population = 2;
    } public bbb(String name, String location, int population) {
    // super(name, location);
    this.name = name;
    this.location = location;
    this.population = population + 10000;
    } public void setPopulation(int population) {
    this.population = population;
    } public int getPopulation() {
    return population;
    } public String toString() {
    return name + "in" + location + ":人口数量" + population + "\n";
    }
    }
      

  2.   

    是否可以只修改子类bbb的toString()方法,其他的似乎没有影响。
    不过这么改,原本派生类输出的"in"没了,变成父类的"在"了public String toString() { 
       return super.toString()+":人口数量"+population+"\n"; 
    }
      

  3.   

    加个get方法就好了.class aaa { private String name; private String location; public aaa(String name, String address) {
    this.name = name;
    this.location = address;
    } public String toString() {
    return name + "在" + location;
    }
    public  String getName(){
    return name;
    }
    public String getLocation(){
    return location;
    }}class bbb extends aaa {
    private int population; public bbb(String name, String location) {
    super(name, location);
    population = 2;
    } public bbb(String name, String location, int population) {
    super(name, location);
    this.population = population + 10000;
    } public void setPopulation(int population) {
    this.population = population;
    } public int getPopulation() {
    return population;
    } public String toString() {
    return this.getName() + "in" + this.getLocation() + ":人口数量" + population + "\n";
    }
    }class useX1 {
    public static void main(String args[]) {
    bbb b1 = new bbb("aaa", "bbb");
    System.out.println(b1);
    bbb b2 = new bbb("ccc", "ddd", 31);
    System.out.print(b2);
    }
    }