覆盖(代码理解)

App类中(程序主入口):

package zzz.ruanko;

import java.util.Scanner;

public class App {

/**

 * 面积求法入口

 */

public static void main(String[] args) {

// 定义一个Shape类的变量,并使其指向Rectangle

Shape p = new Rectangle(2, 3);

//调用父类方法得到图形名称

System.out.println("图形形状为:"+p.getShape());

//调用重载方法计算矩形面积

System.out.print("矩形的面积为:" + p.getArea());

}

}



Shape 类中(图形类):

package zzz.ruanko;

public class Shape {

//形状

public String shape;

//无参构造方法

public Shape(){

shape="deflaut";

}

    //有参构造方法,初始化属性

public Shape(String shape){

this.shape=shape;

}

//图形名称方法

public String getShape(){

return shape;

}

//计算面积方法

    public double getArea(){

     return 0;

    }

}



Rectangle 类中(矩形类):

package zzz.ruanko;

//Rectangle 类继承了Shape 类

public class Rectangle extends Shape {

/**

 * 矩形类

 */

// 定义两个私有属性

// 矩形宽

private double width;

// 矩形高

private double height;

// 构造方法,初始化对象的实行

public Rectangle(double width, double height) {

        super("矩形");

this.width = width;

this.height = height;

}

        //在子类中重新写父类中已经存在的方法

// 计算矩形面积方法

public double getArea() {

double Area = 0;

Area = width * height;

return Area;

}

}



运行结果:

覆盖(代码理解)_第1张图片

这是调用了子类(Rectangle 类)的面积求法



如果稍作改动,如下:

覆盖(代码理解)_第2张图片



运行结果:

覆盖(代码理解)_第3张图片

这是调用了父类(Shape 类 )的面积求法



你可能感兴趣的:(覆盖(代码理解))