package com; public abstract class Shape { static double Pi=3.14; //抽象类方法定义 public abstract double changzhouchang(double a,double b); public abstract double circlezhouchang(double c); public abstract double changmianji(double a,double b); public abstract double circlemianji(double c); } package com; public class Caculate extends Shape { //方法实现 public double changzhouchang(double a,double b) { return (a+b)*2; } public double circlezhouchang(double c) { return 2*Pi*c; } public double changmianji(double a,double b) { return a*b; } public double circlemianji(double c) { return Pi*c*c; } } package com; import java.util.*; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub double a,b,c; System.out.println("程序开始:"); Scanner scanner=new Scanner(System.in); System.out.println("请输入长方形的长,款,圆形的半径:"); a=scanner.nextDouble(); b=scanner.nextDouble(); c=scanner.nextDouble(); Caculate caculate =new Caculate(); System.out.println("长方形周长为:"+caculate.changzhouchang(a, b)+"\n"+"长方形面积为:"+caculate.changmianji(a, b)+"\n"+"圆形周长为:"+caculate.circlezhouchang(c)+"\n"+"圆形面积为:"+caculate.circlemianji(c)); scanner.close(); } }
圆形和长方形都是几何图形,所以定义几何图形为抽象父类
并且拥有两个抽象方法 计算周长和面积
分别新增两个子类,圆形、长方形,继承于几何图形,实现抽象方法计算周长和面积
再新增test类,要用到流程控制,
请用户选择要计算
1、圆形/长方形
2、周长/面积
再要求用户输入(如果是圆形输入半径,如果是长方形输入长和宽)
判断用户输入是否合理
再给出相应提示或结果。
写代码不是要用最少的类或者最少的代码量去解决问题,而是要做到最优化处理,
这样即便之后我要再引入新的几何图形就能在最短的时间处理完成,
要注意代码的可扩展性,希望能对你有所帮助!
不用这么麻烦直接抽象类里定义两个方法一个周长一个面积然后定义两个子类自动创建的方法里面你可以自己随便添加变量然后计算值,抽象类只是限制了子类的方法必须有那些方法但是他没有限定方法里你需要做些什么事情。