1-1 多态练习-计算面积
定义三个类,父类(抽象类)GeometricObject代表几何形状,子类Circle代表圆形,子类Rectangle代表矩形。具体属性和方法如下:
父类 (抽象类)GeometricObject
属性:
private String color;
private String name;
为上述变量提供getter()和setter()方法
构造方法:为color和name初始化
public GeometricObject(String color, String name)
抽象方法:
public void findArea();用于计算几何图形的面积
子类:
Circle
属性:
private double radius;半径
为上述变量提供getter()和setter()方法
构造方法:
设计构造方法为圆形的name,color和radius初始化
方法:
实现findArea()方法用于计算圆形的面积并返回计算结果
子类:
Rectangle
属性:
private double width;宽
private double height;高
为上述变量提供getter()和setter()方法
构造方法:
设计构造方法为圆形的name,color,width和height初始化
方法:
实现findArea()方法用于计算矩形的面积并返回计算结果
测试类Main
方法:
public static void main(String[] args) {
创建圆形对象(“长方形”,“蓝色”,3.2,4.5)
输出圆形的颜色和面积
创建矩形对象(“圆形”,“红色”,3.4)
输出矩形的颜色和面积
}
public static void show(GeomentricObject g){
//形参传入圆形或者矩形的对象,输出其面积
//判断传入的对象是圆形还是矩形
//如果是圆形就输出圆形的颜色和面积;
//如果是矩形就输出矩形的颜色和面积;
}
注意:1.所有类不用修饰词
2.测试类名称为“Main”,否则编译出错
在这里给出一组输入。例如:
输出样例:
在这里给出相应的输出。例如:
矩形的颜色是:蓝色,面积是:14.4 圆形的颜色是:红色,圆形的面积是:36.31681107549801
代码长度限制 16 KB 时间限制 400 ms 内存限制 64 MB 栈限制 8192 KB
// 1-1 多态练习-计算面积
abstract class GeometricObject{
private String color;
private String name;
public GeometricObject(String color, String name){
this.color = color;
this.name = name;
}
public String getColor(){
return color;
}
public void setColor(String Color){
this.color = Color;
}
public String getName(){
return name;
}
public void setName(String Name){
this.name = Name;
}
public abstract double findArea(); // 抽象方法,用于计算几何面积
}
class Circle extends GeometricObject{
private double radius;
public Circle(String name, String color, double radius) {
super(color, name); // super()调用父类的构造方法
this.radius = radius;
}
public double getRadius(){
return radius;
}
public void setRadius(double radius){
this.radius = radius;
}
@Override
public double findArea(){
return Math.PI * radius * radius;
}
}
class Rectangle extends GeometricObject{
private double width;
private double height;
public Rectangle(String name, String color, double width, double height){
super(color, name); // super()调用父类的构造方法
this.width = width;
this.height = height;
}
@Override
public double findArea(){
return width * height;
}
}
public class Main {
public static void main(String[] args) {
Rectangle r = new Rectangle("长方形", "蓝色", 3.2, 4.5);
Circle c = new Circle("圆形", "红色", 3.4);
show(r);
show(c);
}
static void show(GeometricObject g){
if(g.getName().equals("圆形")){ // 用equal比较字符串是否相等
System.out.println("圆形的颜色是:" + g.getColor() + ",圆形的面积是:" + g.findArea());
}else
System.out.println("矩形的颜色是:"+g.getColor()+",面积是:"+g.findArea());
}
}
2143

被折叠的 条评论
为什么被折叠?



