下面代码为什么不出现类转换异常,刚学java,请详细点,谢谢啦。
class Point {
private Object x;
private Object y;
public Point(Object x, Object y) {
this.x = x;
this.y = y;
}
public String toString() {
return "Point [x=" + x + ", y=" + y + "]";
}
}
public class Testfanxing {
public static void main(String[] args) {
Point point1 = new Point(1, 1);
System.out.println(point1.toString());
Point point2 = new Point(1.2, "北纬30度");
System.out.println(point2.toString());
Point point3 = new Point("东经100度", "北纬30度");
System.out.println(point3.toString());
}
}
toString中是不是存在向下转型啊? 如果有为什么不出现类转换异常。
------解决方案--------------------
不报错的原因是System.out.print方法会自动调用参数的toString方法。另外,String的加号运算符也被重载过,会自动调用其它参数的toString方法。而toString方法是任何对象都有的,所以,不会报错。