题目显示不全,完整题目描述:

(1)定义闭合图形抽象类ClosedFigure定义属性:1.形状;2.定义构造方法,给形状赋值;3.定义两个抽象方法:计算面积和计算周长;4.定义一个显示方法:显示图像形状,周长,面积;(2)定义ClosedFigure的子类椭圆Ellipse定义属性:1.长短轴定义构造方法:初始化长短轴;2.实现从父类继承来的抽象方法;[提示:椭圆求周长公式Math.PI*(this.radius_a+this.radius_b)](3)定义ClosedFigure的子类矩形类Rectangle定义属性:1.长和宽定义构造方法:初始化长和宽;2.实现从父类继承来的抽象方法;

完整代码如下:

package naizi;

import java.util.Scanner; 

//闭合图形抽象类
abstract class ClosedFigure{ public String shape; public ClosedFigure(String shape){
this.shape=shape;
} abstract double perimeter();
abstract double area(); public void print() //显示形状、属性、周长及面积
{
System.out.println("this is a "+this.shape+",perimeter:"+this.perimeter()+",area:"+this.area());
}
} //定义椭圆类
class Ellipse extends ClosedFigure{ double Longaxis,Shortaxis; public Ellipse(String shape) {
super(shape);
}
public Ellipse(double a,double b) {
this("Ellipse");
this.Longaxis=a;
this.Shortaxis=b;
}
double perimeter(){
return Math.PI*(this.Longaxis+this.Shortaxis);
}
double area(){
return Math.PI*this.Longaxis*this.Shortaxis;
}
} //定义矩形类
class Rectangle extends ClosedFigure{ double Length,Width; public Rectangle(String shape) {
super(shape);
}
public Rectangle(double a,double b) {
this("Rectangle");
this.Length=a;
this.Width=b;
}
double perimeter(){
return 2*(this.Length+this.Width);
}
double area(){
return this.Length*this.Width;
}
} public class ClosedFigure_ex
{
public static void main(String args[]){
int a,b;
ClosedFigure d1;
ClosedFigure d2; try{
Scanner sc = new Scanner(System.in);
String str1 = sc.next();
a=Integer.parseInt(str1);
str1 = sc.next();
b=Integer.parseInt(str1);
d1=new Ellipse(a,b);
d1.print(); String str2 = sc.next();
a=Integer.parseInt(str2);
str2 = sc.next();
b=Integer.parseInt(str2);
d2=new Rectangle(a,b);
d2.print();
} catch(Exception e){
System.out.println("error");
}
}
}

测试如下:

最新文章

  1. 实用的60个CSS代码片段
  2. IOS开发--自定义segment控件,方便自定义样式
  3. [蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件
  4. SQL SERVER2005 的三种复制类型概述
  5. MySQL操作数据库和表的常用命令新手教程
  6. JQUERY学习(贰)
  7. Selenium2Library系列 keywords 之 _SelectElementKeywords 之 select_all_from_list(self, locator)
  8. sencha项目升级
  9. 听说你买了 EOS ,连代码什么样都不知道?
  10. hdu 5479(括号问题)
  11. Leetcode_136_Single Number
  12. Maven 插件之 docker-maven-plugin 的使用
  13. .Net Core 实践 - 使用log4net记录日志(3)— log4net向ElasticSearch写日志
  14. Hive的union和join操作
  15. Presto 架构和原理简介(转)
  16. sql中的函数
  17. IT管理就这么管
  18. jQuery-理解选择结果
  19. C++练习 | 在递增序列中查找最后一个小于等于指定数的元素
  20. SQL创建数据库、建表、填入内容

热门文章

  1. Oracle - SPM固定执行计划(一)
  2. 8.15 day33 进程池与线程池_协程_IO模型(了解)
  3. 02 http和https协议
  4. 新手学习selenium路线图(老司机亲手绘制)
  5. SpringMVC源码分析4:DispatcherServlet如何找到正确的Controller
  6. SpringMVC源码剖析5:消息转换器HttpMessageConverter与@ResponseBody注解
  7. Linux相关安装文档
  8. C++责任链
  9. Kafka到底有几个Offset?——Kafka核心之偏移量机制
  10. Oracle数据库测试和优化最佳实践: OTest介绍 (转)