之前给大家介绍了一下什么是java多态,那么下面要给大家分享的就是一个重写怎样去实现多态性的实例。
使用了类的继承和运行时多态机制。
具体实现步骤:
1、创建Figure类,在这个类当中,先要定义存储二维对象的尺寸,之后再定义有两个参数的构造方法,最后添加area()方法,这个方法计算对象的面积:
public class Figure { double dim1; double dim2; Figure(double d1, double d2) { // 有参的构造方法 this.dim1 = d1; this.dim2 = d2; } double area() { // 用于计算对象的面积 System.out.println("父类中计算对象面积的方法,没有实际意义,需要在子类中重写。"); return 0; } }
2、创建继承自Figure类的Rectangle子类,这个类调用父类的构造方法,并且重写父类中的area()方法:
public class Rectangle extends Figure { Rectangle(double d1, double d2) { super(d1, d2); } double area() { System.out.println("长方形的面积:"); return super.dim1 * super.dim2; } }
3、创建继承自Figure类的Triangle子类,这个类和Rectangle相似:
public class Triangle extends Figure { Triangle(double d1, double d2) { super(d1, d2); } double area() { System.out.println("三角形的面积:"); return super.dim1 * super.dim2 / 2; } }
4、创建Test测试类,这个类的main()方法当中,先声明Figure类的变量figure,之后,分别为figure变量指定不同的对象,并调用这些对象的area()方法:
public class Test { public static void main(String[] args) { Figure figure; // 声明Figure类的变量 figure = new Rectangle(9, 9); System.out.println(figure.area()); System.out.println("==============================="); figure = new Triangle(6, 8); System.out.println(figure.area()); System.out.println("==============================="); figure = new Figure(10, 10); System.out.println(figure.area()); } }
不管是figure变量的对象是Rectangle还是Triangle,它们都是Figure类的子类,所以的话,能够向上转型成这个类,从而实现多态。
输出结果:
长方形的面积: 81.0 === === === === === === === === === === = 三角形的面积: 24.0 === === === === === === === === === === = 父类中计算对象面积的方法, 没有实际意义, 需要在子类中重写。 0.0
更多java程序代码例子,请继续通过关注奇Q工具网来进行了解吧。
推荐阅读: