Java继承与多态精选.doc
文本预览下载声明
实验报告
课程名称 面向对象程序设计 实验名称 实验三、继承与多态 日期 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
显示全部