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

来源:10-3 Java 中的抽象类

陆星崖

2019-02-20 00:53

图形类

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回答

  • qq_慕斯9337796
    2019-02-28 13:16:24
    已采纳

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

    慕函数834...

    可以把面积和周长分开写,分开调用,然后实现类里进行语句挑选,判断要计算的图形和要计算的数据

    2019-03-23 10:12:01

    共 1 条回复 >

  • 墨墨白
    2019-03-10 10:50:28

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

    https://img.mukewang.com/5c847b720001d8a807030245.jpg

    墨墨白 回复慕村6002...

    我知道了,因为父类没有call,所以不能用父类指向子类

    2019-03-14 09:00:02

    共 4 条回复 >

  • qq_精慕门9532073
    2019-02-23 19:53:40

    你才是大神呀!

  • 悠然_
    2019-02-21 11:07:54

    很优秀

  • 学霸985
    2019-02-20 20:44:10

    没有了,已经很好了!!

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530652 学习 · 6091 问题

查看课程

相似问题