文档详情

Java继承与多态精选.doc

发布:2017-06-02约3.33千字共6页下载文档
文本预览下载声明
实验报告 课程名称 面向对象程序设计 实验名称 实验三、继承与多态 日期 2016-9-30 学生学号 姓名 班级 实验目的: 通过本次实验,要求学生能进一步掌握继承和多态的概念,熟练定义类、派生类、抽象类、抽象方法、虚拟方法和重载方法。 实验条件: 电脑一台、能上网查阅资料。 首先定义基本几何图形的抽象基类(Shape),然后定义Shape的派生类Circle(圆形)、Square(正方形)和Triangle(三角形)。要求通过抽象方法、虚拟方法和重载方法来计算各种图形的面积和周长。(提示:求三角形的面积用海伦公式:,其中a,b,c是三角形的边长,L=(a+b+c)/2,即周长的一半。) 源代码: Shape.java package com.lit.jsj.work3; public abstract class Shape { public abstract double getLength(); public abstract double getArea(); } Square.java package com.lit.jsj.work3; import com.lit.jsj.work3.Shape; public class Square extends Shape{ private double d; public double getD() { return d; } public void setD(double d) { this.d = d; } public Square(double d) { // TODO Auto-generated constructor stub this.d=d; setD(d); } @Override public double getLength() { // TODO Auto-generated method stub return 4*d; } @Override public double getArea() { // TODO Auto-generated method stub return d*d; } } Triagle.java package com.lit.jsj.work3; public class Triagle extends Shape{ private double a,b,c; public double getA() { return a; } public void setA(double a) { this.a = a; } public double getB() { return b; } public void setB(double b) { this.b = b; } public double getC() { return c; } public void setC(double c) { this.c = c; } public Triagle(double a,double b,double c) { // TODO Auto-generated constructor stub this.a=a; setB(b); setC(c); } public boolean IsTriangle(){ return (a+bc)(b+ca)(a+cb); } @Override public double getLength() { // TODO Auto-generated method stub if (IsTriangle()){ return a+b+c; } else{ return 0; } } @Override public double getArea() { // TODO Auto-generated method stub if (IsTriangle()){ double l=getLength()/2; double area=Math.sqrt(l*(l-a)*(l-b)*(l-c)); return area; }else { return 0; } } } Circle.java package com.lit.jsj.work3; import com.lit.jsj.work3.Shape; public class Circle extends Shape { private d
显示全部
相似文档