问题描述
|
考虑下面的以下代码片段。
class X {
public String toString() {
return \"Hi\";
}
}
public class Main {
public static void main(String[] args) {
Object obj = new X();
System.out.println(obj.toString());
}
}
如何在不更改代码的情况下立即调用Object类中的toString()?还是我问不可能?
解决方法
从外部,您不能-这会违反封装。 (想象一下
toString()
实际上是一种改变对象状态的方法,并且子类想要强制执行一些约束-您不应该能够跳过这些约束。)您可以从X
自身内部进行操作,例如
public String toString() {
return super.toString() + \"Hi\";
}