shape图形类中有两个子类分别是矩形Rectangle类和Circle圆形类分别继承shape类,利用抽象类计算子类图形面积
本人解决方案为:
先创建一个shape图形类,定义其方法,如下:
package com.imooc.second;
public abstract class Shape {
public abstract void Perimeter(double r, double height,double length);
public abstract void Area(double r, double height,double length);
}
public abstract void Perimeter(double r, double height,double length);
public abstract void Area(double r, double height,double length);
}
然后分别创建
矩形Rectangle类和Circle圆形类,并写入方法,如下
package com.imooc.second;
public class Rectangle extends Shape {
@Override
public void Perimeter(double r, double height,double length) {
// TODO Auto-generated method stub
System.out.println("矩形周长公式为:(长+宽)×2");
System.out.println("长"+length+"宽"+height+"矩形的周长是:"+((height+length)*2));
}
public void Perimeter(double r, double height,double length) {
// TODO Auto-generated method stub
System.out.println("矩形周长公式为:(长+宽)×2");
System.out.println("长"+length+"宽"+height+"矩形的周长是:"+((height+length)*2));
}
@Override
public void Area(double r, double height,double length) {
// TODO Auto-generated method stub
System.out.println("矩形得面积公式为:长×宽");
System.out.println("长"+length+"宽"+height+"矩形的面积是"+(length*height));
}
public void Area(double r, double height,double length) {
// TODO Auto-generated method stub
System.out.println("矩形得面积公式为:长×宽");
System.out.println("长"+length+"宽"+height+"矩形的面积是"+(length*height));
}
}
package com.imooc.second;
public class Circle extends Shape {
@Override
public void Perimeter(double r, double height,double length) {
// TODO Auto-generated method stub
System.out.println("圆形得周长公式为:直径×π");
System.out.println("半径为"+r+"的圆形周长为"+(double)(Math.PI*2*r));
}
public void Perimeter(double r, double height,double length) {
// TODO Auto-generated method stub
System.out.println("圆形得周长公式为:直径×π");
System.out.println("半径为"+r+"的圆形周长为"+(double)(Math.PI*2*r));
}
@Override
public void Area(double r, double height,double length) {
// TODO Auto-generated method stub
System.out.println("圆形的面积公式为:π×半径×半径");
System.out.println("半径为"+r+"的圆形的面积为"+(double)(Math.PI*r*r));
}
public void Area(double r, double height,double length) {
// TODO Auto-generated method stub
System.out.println("圆形的面积公式为:π×半径×半径");
System.out.println("半径为"+r+"的圆形的面积为"+(double)(Math.PI*r*r));
}
}
后创建一个测试类Initail类,如下:
package com.imooc.second;
import java.util.Scanner;
public class Initail {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner input =new Scanner(System.in);
System.out.println("请输入矩形的长:");
double length=input.nextDouble();
System.out.println("请输入矩形的高:");
double height=input.nextDouble();
System.out.println("请输入圆形的半径:");
double r=input.nextDouble();
Shape R=new Rectangle();
R.Perimeter(length,height,r);
R.Area(length,height,r);
Shape C=new Circle();
C.Perimeter(length,height,r);
C.Area(length,height,r);
}
// TODO Auto-generated method stub
Scanner input =new Scanner(System.in);
System.out.println("请输入矩形的长:");
double length=input.nextDouble();
System.out.println("请输入矩形的高:");
double height=input.nextDouble();
System.out.println("请输入圆形的半径:");
double r=input.nextDouble();
Shape R=new Rectangle();
R.Perimeter(length,height,r);
R.Area(length,height,r);
Shape C=new Circle();
C.Perimeter(length,height,r);
C.Area(length,height,r);
}
}
结果如下
问题:1.传入参数未能解决分开传入,浪费空间内存
2.结果无法强转为double类型
最后,望路过的大佬指点一二,
学习资料来源慕课网,如有侵权等行为,请留言,作为一名向往Java的小白,默默爬行中