继承

来源:互联网 发布:lol末日人工智能技能 编辑:程序博客网 时间:2024/04/29 21:31


java中的继承,子类继承了父类所拥有的方法并在这个基础上保有一些自己的“特点(方法)”。
它的好处就是不用因为新的需要而重新写类(类中出现较多的重复代码),我们只需要去写一个针对新需要的含有新“特性(方法)”的类(子类),去继承含有我们所需的方法的类(父类)。从而简化了我们的编写过程,再某些方面,也使程序更加有条理。

继承还有一个好处,就是可以做到上溯造型,即把衍生类型(子类型)当作它的基本类型(父类型)处理的过程。
thinking in java 的关于shap的例子已经讲得非常清楚:
我们用Java写了这样一个函数:
void doStuff(Shape s) {
  s.erase();
  // ...
  s.draw();
}

我们在一些程序里调用这个函数,
Circle c = new Circle();
Triangle t = new Triangle();
Line l = new Line();
doStuff(c);
doStuff(t);
doStuff(l);
一个Circle(圆)句柄传递给一个本来期待Shape(形状)句柄的函数。由于圆是一种几何形状,所以doStuff()能正确地进行处理。也就是说,凡是doStuff()能发给一个Shape的消息,Circle也能接收。所以这样做是安全的,不会造成错误。
需要注意的是,子类与父类之间不可以有相同的方法,即子类里的方法不得对父类中的方法进行覆盖,如何避免这一问题呢?我们可以利用final来进行限制。