日期:2014-05-20 浏览次数:21126 次
import static net.mindview.util.Print.*;
class Shape {
Shape(int i) { print("Shape constructor"); }
void dispose() { print("Shape dispose"); }
}
class Circle extends Shape {
Circle(int i) {
super(i);
print("Drawing Circle");
}
void Dispose() {
print("Erasing circle");
super.dispose();
}
}
class Triangle extends Shape {
Triangle(int i) {
super(i);
print("Drawing Triangle");
}
void dipsose() {
print("Erasing Triangle");
super.dispose();
}
}
class Line extends Shape {
private int start, end;
Line(int start, int end) {
super(start);
this.start = start;
this.end = end;
print("Drawing Line: " + start + ", " + end);
}
void dispose() {
print("Erasing Line: " + start + ", " + end);
super.dispose();
}
}
public class CADSystem16 extends Shape {
private Circle c;
private Triangle t;
private Line[] lines = new Line[3];
public CADSystem16(int i) {
super(i + 1);
for(int j = 0; j < lines.length; j++)
lines[j] = new Line(j, j*j);
c = new Circle(1);
t = new Triangle(1);
print("Combined constructor");
}
public void dispose() {
print("CADSystem.dispose()");
// The order of cleanup is the reverse
// of the order of initialization
t.dispose();
c.dispose();
for(int i = lines.length - 1; i >= 0; i--)
lines[i].dispose();
super.dispose();
}
public static void main(String[] args) {
CADSystem16 x = new CADSystem16(47);
try {
print("Returning from try block");
return;
// unreachable statement:
// print("You can't see this");
// but finally block will still execute:
} finally {
x.dispose();
}
}
}
class Circle extends Shape {
Circle(int i) {
super(i);
print("Drawing Circle");
}
void Dispose() {
print("Erasing circle");
super.dispose();
}
}
class Triangle extends Shape {
Triangle(int i) {
super(i);
print("Drawing Triangle");
}
void dipsose() {
print("Erasing Triangle");
super.dispose();
}
}
------解决方案--------------------
拼错了
还是仔细一点好
还有最好不要这样用
为什么一定要用这么相似的名字
换一个名字吧
------解决方案--------------------
首先不知道楼主在哪里抄来的东西,发在这里害的大家花了那么长时间来帮你调试。
其次您真的重写方法。方法名写错了,建议:加上@Override,在被重写的方法上,但是需要在jdk1.5版本以上,
其他楼主也没问。
就到这里吧。
代码我帮该了: