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;
}
}
运行结果:
这是调用了子类(Rectangle 类)的面积求法
如果稍作改动,如下:
运行结果:
这是调用了父类(Shape 类 )的面积求法