为了账号安全,请及时绑定邮箱和手机立即绑定

跪求大神帮忙指正我的代码还有哪些地方需要改进

图形类

package com.chy3.practice;


public abstract class Shape {

public abstract String square(double a,double b);

public abstract String circumFerence(double a,double b);

}

矩形类

package com.chy3.practice;

import java.util.Scanner;

public class Rectangle extends Shape {

Scanner input = new Scanner(System.in);

public void cal(){

System.out.println("计算矩形周长和面积");

System.out.println("请输入两条边长");

double stre1 = input.nextDouble();

double stre2 = input.nextDouble();

System.out.println("周长为:  "+circumFerence(stre1, stre2));

System.out.println("面积为:  "+square(stre1, stre2));

}

@Override

public String square(double a,double b) {

// TODO Auto-generated method stub

double squ = a*b;

return "矩形面积为:"+squ;

}


@Override

public String circumFerence(double a,double b) {

// TODO Auto-generated method stub

double cif = (a+b)*2;

return "矩形周长为"+cif;

}


}



圆形类

package com.chy3.practice;

import java.lang.Math;

import java.util.Scanner;

public class Circle extends Shape {

Scanner input = new Scanner(System.in);

Double p = Math.PI;

public void cal(){

System.out.println("计算圆形的周长和面积");

System.out.println("请输入半径和直径");

double r = input.nextDouble();

double d = input.nextDouble();

System.out.println("周长为:  "+circumFerence(r, d));

System.out.println("面积为:  "+square(r, d));

}

@Override

public String square(double a,double b) {

// TODO Auto-generated method stub

double squ = p*a*a;

return "圆的面积为"+squ;

}


@Override

public String circumFerence(double a,double b) {

// TODO Auto-generated method stub

double cif = 2*p*b;

return "圆的周长为"+cif;

}


}

实现类

package com.chy3.practice;


public class Initial {

public static void main(String[] args){

System.out.println("计算开始:");

Rectangle rec = new Rectangle();

rec.cal();

Circle cir = new Circle();

cir.cal();

}

}


正在回答

5 回答

可以加,圆的直径输入如果不是半径的2倍,那么输入错误,否则执行

2 回复 有任何疑惑可以回复我~
#1

慕函数8345145

可以把面积和周长分开写,分开调用,然后实现类里进行语句挑选,判断要计算的图形和要计算的数据
2019-03-23 回复 有任何疑惑可以回复我~

我运行了你的代码,但是如果按老师讲的,用抽象类定义引用变量,指向子类对象为什么不行呢,代码和你的一样,只是测试类有点不同

https://img1.sycdn.imooc.com//5c847b720001d8a807030245.jpg

0 回复 有任何疑惑可以回复我~
#1

慕村6002942

你先把父类保存,Ctrl加S
2019-03-11 回复 有任何疑惑可以回复我~
#2

墨墨白 回复 慕村6002942

谢谢啦
2019-03-13 回复 有任何疑惑可以回复我~
#3

墨墨白 回复 慕村6002942

请问我保存了,但是还是显示出错为什么?
2019-03-14 回复 有任何疑惑可以回复我~
#4

墨墨白 回复 慕村6002942

我知道了,因为父类没有call,所以不能用父类指向子类
2019-03-14 回复 有任何疑惑可以回复我~
查看1条回复

你才是大神呀!

1 回复 有任何疑惑可以回复我~

很优秀

0 回复 有任何疑惑可以回复我~

没有了,已经很好了!!

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

跪求大神帮忙指正我的代码还有哪些地方需要改进

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信