通过继承和重载的结合,超类可以定义供他所有子类可以使用方法的通用形式。如下代码:
class Figure { double dim1; double dim2; Figure(double a, double b) { dim1 = a; dim2 = b; } double GetArea() { System.out.println("The figure is undefined!"); return 0; } } class Rectangle extends Figure { Rectangle(double a, double b) { super(a, b); } double GetArea() { System.out.println("this is in Rectangle."); return dim1 * dim2; } } class Triangle extends Figure { Triangle(double a, double b) { super(a, b); } double GetArea() { System.out.println("this is in Triangle."); return dim1 * dim2/2; } } public class HelloWorld { public static void main(String[] args) { Figure f = new Figure(1, 2); Rectangle r = new Rectangle(3, 4); Triangle t = new Triangle(5, 6); Figure area; area = f; System.out.println("area = " + area.GetArea()); area = r; System.out.println("area = " + area.GetArea()); area = t; System.out.println("area = " + area.GetArea()); } }
The figure is undefined! area = 0.0 this is in Rectangle. area = 12.0 this is in Triangle. area = 15.0
原文:http://blog.csdn.net/mn_forever/article/details/24196591