Java多态性,重写怎样实现多态性?

KLQ 2020-09-04 10:08:22 java常见问答 8477

之前给大家介绍了一下什么是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工具网来进行了解吧。

推荐阅读:

java多态的理解,java多态简单例子

java多态例子,java多态代码实例

java继承多态是什么意思?java封装继承多态的例子