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);
}
然后分别创建矩形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));
 }
 @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));
 }
}

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));
 }
 @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));
 }

}
后创建一个测试类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);
 }
}

结果如下
抽象类练习
问题:1.传入参数未能解决分开传入,浪费空间内存

          2.结果无法强转为double类型
最后,望路过的大佬指点一二,

学习资料来源慕课网,如有侵权等行为,请留言,作为一名向往Java的小白,默默爬行中

相关文章: