Java中不修改父类时,子类如何访问父类私有变量?
子类重写toString方法时复用父类私有变量内容的解决方案
可行,不需要直接访问父类的私有变量,你可以通过调用父类的toString()方法来复用它已经拼接好的姓名和ID信息,再补充子类需要的内容。
具体实现思路
父类的toString()方法已经能够正确输出firstName、lastName和employeeId这些私有变量的内容,子类重写时只需要用super.toString()获取父类的输出结果,再拼接子类特有的信息(比如职位、收入)即可。
修改后的子类代码
@Override public String toString(){ // 调用父类toString获取姓名和ID,再拼接子类的职位、收入信息 return super.toString() + ", Position: Boss, Weekly Income: " + yourIncomeVariable; }
为什么不用get/set方法?
因为父类的私有变量没有对外暴露get方法(你也不能修改父类添加这些方法),所以直接访问或通过get方法获取都是行不通的。而复用父类已有的toString()是最符合作业要求的方式——既不修改父类,又能拿到需要的私有变量拼接结果。
内容的提问来源于stack exchange,提问作者NeverendingFlame42
相关产品推荐
相关产品推荐

