【 課題 】以下のプログラムの不具合の発生箇所を示し、その理由を答えよ。
class Point {
  protected int x; protected int y;
  public int sum() { return x+y; }
}
class ColorPoint extends Point {
  protected int c;
  public int sum() {
    return (super.sum())+c;
  }
}
class ThreeDPoint extends Point {
  protected int z;
  public int sum() {
    return (super.sum())+z;
  }
}
class NewPoint extends ColorPoint {}
class Test {
  ColorPoint cp;
  public int foo(Point p){
    cp = (ColorPoint)p; return cp.sum();
  }
  public int bar() {
    Point p = new ThreeDPoint();
    return foo(p);
  }
  static public void main (String[] args) {
    Test tmp = new Test(); tmp.bar();
  }
}
3問わからないうちの1問目です。よろしくお願いします。