JAVA中的向上转型

1.一个父类shape,包含draw();erase();move();等方法。其子类circle,triangle等,会继承这些方法。

2.单独编写了一个方法:

1 void doSomething(Shape shape) {
2 shape.erase();
3 //...
4 shape.draw();
5 }

 那么,这个方法可以与任何Shape对话。

3.如果按照如下方法调用:

1 Circle circle = new Circle();
2 Triangle triangle = new Triangle();
3 doSomething(circle);
4 doSomething(triangle);

这些doSomething()的调用会自动正确的处理,而不管对象的确切类型。

4.当Circle被传入到,本来预期接受Shape的方法中时。由于Circle可以被看做是Shape,那么doSomething()可以发送给Shape的任何信息,Circle都可以接收。

  这里表达的意思只是“你是一个Shape, 你可以erase()和draw()你自己,do it,注意细节的正确性就好”。

5.把将 导出类 看作是它的 基类 的过程,称为 向上转型。转型为一个基类,就是在继承图中向上移动。


posted @ 2011-09-13 14:32  Reaver21  阅读(234)  评论(0)    收藏  举报