class Shape {
void draw() {}
void erase() {}
void print() {
System.out.println("Base-class print()");
}
}class Circle extends Shape {
void draw() {
System.out.println("Circle.draw()");
}
void erase() {
System.out.println("Circle.erase()");
}
void print() {
System.out.println("Circle.print()");
}
}class Square extends Shape {
void draw() {
System.out.println("Square.draw()");
}
void erase() {
System.out.println("Square.erase()");
}
void print() {
System.out.println("Square.print()");
}
}class Triangle extends Shape {
void draw() {
System.out.println("Triangle.draw()");
}
void erase() {
System.out.println("Triangle.erase()");
}
void print() {
System.out.println("Triangle.print()");
}
}public class E01_NewShapeMethod {
public static void main(String args[]) {
Shape[] s = {
new Circle(), new Square(), new Triangle(),
};
// Make polymorphic method calls:
for(int i = 0; i < s.length; i++) {
s[i].draw();
s[i].erase();
s[i].print();
}
}
} ///:~
正确的运行结果:
Circle.draw()
Circle.erase()
Circle.print()
Square.draw()
Square.erase()
Square.print()
Triangle.draw()
Triangle.erase()
Triangle.print()1.这个结果不是这样??:
Circle.draw()
Circle.erase()
Base-class print()
Square.draw()
Square.erase()
Base-class print()
Triangle.draw()
Triangle.erase()
Base-class print()
void draw() {}
void erase() {}
void print() {
System.out.println("Base-class print()");
}
}class Circle extends Shape {
void draw() {
System.out.println("Circle.draw()");
}
void erase() {
System.out.println("Circle.erase()");
}
void print() {
System.out.println("Circle.print()");
}
}class Square extends Shape {
void draw() {
System.out.println("Square.draw()");
}
void erase() {
System.out.println("Square.erase()");
}
void print() {
System.out.println("Square.print()");
}
}class Triangle extends Shape {
void draw() {
System.out.println("Triangle.draw()");
}
void erase() {
System.out.println("Triangle.erase()");
}
void print() {
System.out.println("Triangle.print()");
}
}public class E01_NewShapeMethod {
public static void main(String args[]) {
Shape[] s = {
new Circle(), new Square(), new Triangle(),
};
// Make polymorphic method calls:
for(int i = 0; i < s.length; i++) {
s[i].draw();
s[i].erase();
s[i].print();
}
}
} ///:~
正确的运行结果:
Circle.draw()
Circle.erase()
Circle.print()
Square.draw()
Square.erase()
Square.print()
Triangle.draw()
Triangle.erase()
Triangle.print()1.这个结果不是这样??:
Circle.draw()
Circle.erase()
Base-class print()
Square.draw()
Square.erase()
Base-class print()
Triangle.draw()
Triangle.erase()
Base-class print()
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货