java类的继承与多态实验报告 下载本文

实验报告 课程名称 实验名称 学生学号 面向对象程序设计 实验三、类的继承与多态 姓名 日期 班级 2018/4/23 实验目的: 通过本次实验,要求学生能进一步掌握继承和多态的概念,熟练定义类、派生类、抽象类、抽象方法、虚拟方法和重载方法。 实验条件: 电脑一台、能上网查阅资料。 首先定义基本几何图形的基类(Shape),然后定义Shape的派生类Circle(圆形)、Square(正方形)和Triangle(三角形)。要求通过方法覆盖来计算各种图形的面积和周长。(提示:求三角形的面积用海伦公式:S?L*(L?a)*(L?b)*(L?c),其中a,b,c是三角形的边长,L=(a+b+c)/2,即周长的一半。) 源代码: package public abstract class Shape { protected String name; public Shape(){ } public Shape(String name){ } public String getName() { } public void setName(String name) { } abstract double area(); abstract double length(); public String toString() { } // TODO Auto-generated method stub return name+\周长和面积分别是\+length()+\+area(); = name; return name; super(); =name; name=\图形类\; } package class Square extends Shape { } double length() { } // TODO Auto-generated method stub return 4*a; double area() { } // TODO Auto-generated method stub return (a, 2); private double a; public Square(double a,String name){ } super(name); =a; package class Circle extends Shape { } double length() { } // TODO Auto-generated method stub return 2**r; double area() { } // TODO Auto-generated method stub return *(r, 2); private double r; public Circle(double r,String name){ } super(name); =r; package class Triangle extends Shape { double length() { } // TODO Auto-generated method stub double L=(a+b+c)/2; return 2*L; double area() { } double L=(a+b+c)/2; // TODO Auto-generated method stub return (L*( L-a)*( L-b)*( L-c)); public Triangle (double a,double b,double c,String name){ } super(name); =a; =b; =c; private double a; private double b; private double c; package class ShapeDemo { public static void main(String[] args) { Shape s1=null; s1=new Circle(5, \圆形\); } s1= new Square(6, \正方形\); s1=new Triangle(3, 4, 5, \三角形\); } 实验结果: 实验总结(结论或问题分析): 通过本次实验,进一步了解了继承和多态的概念,以及如何定义类、派生类、抽象类、抽象方法、虚拟方法和重载方法。对老师在课堂上讲解的知识进一步掌握。 实验成绩

任课教师签名