抽象类练习

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的小白,默默爬行中
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值