我来说,假设 A is B's superclass 可以有一下声明: A my = new A(); A my = new B(); 但不能有 B my2 = new A(); 因为子类一般具有比父类更多的信息,即父类需要的子类都有 所以子类可以不加任何显式转换地到父类, 而基于同样理由,反过来则不成立所以你定义成Object obj = new Object(); 你就不能这样: (MyClass)obj;而,Object obj = new MyClass(); 情况下, (MyClass)obj就是允许的。
toString() is usually been overrided, so that we can provide more useful info in this method either for debugging or displaying purpose.
造型转换不是为了使用子类所有的方法(把超类专成子类)吗?
书上是这样讲的啊。
能使用toString()方法的原因不是因为继承吗?
如果是把子类转换成超类有什么原因吗?
不是因为多态性,超类的对象变量也可以指向子类的对象吗?并且可以正确的调用方法。我是菜鸟,,说错了别怪啊。请指教。
可以有一下声明:
A my = new A();
A my = new B();
但不能有 B my2 = new A();
因为子类一般具有比父类更多的信息,即父类需要的子类都有
所以子类可以不加任何显式转换地到父类,
而基于同样理由,反过来则不成立所以你定义成Object obj = new Object();
你就不能这样: (MyClass)obj;而,Object obj = new MyClass(); 情况下,
(MyClass)obj就是允许的。