面向对象程序设计A(Java)实验报告实验名称:类的继承与多态实验实验类型:类的继承与多态实验指导教师:彭红专业班级:计科1403班姓名:杨萌晖学号:5120141916实验地点:东6E501实验成绩:__________________日期:2014年11月4日实验四类的继承与多态实验一、实验目的1.练习类的继承与多态设计过程2.练习面向对象的图形用户界面设计,事件设计方法二、实验内容1、5-8(P136).抽象类名改为Figure,三角形改为“等腰直角三角形”,各具体类名称分别为RightTriangle、Square和Cycle;2、编写测试类TestSquare,检验第一题的结果;3、在第1题的基础上,在抽象类中增加一个drawSquare()方法,具体类中实现这个方法;4、设计一个类似Windows的Application应用程序,在窗体上调用第2题的drawSquare()方法显示不同类型Square。三、实验设计:1.抽象一个Figure类:定义一个double类型属性edge和一个double返回类型类型方法getArea()。再分别定义三个实体类继承抽象类Figure的属性并分别实现继承抽象方法。2.定义一个测试类分别求对应面积3.在抽象类中定义一个drawSquare()方法,根据具体类的不同实现这个方法4.设计一个类似Windows的Application应用程序,在窗体上调用drawSquare()方法显示不同类型Square。四、实验过程1.按照设计的步骤完成。遇到的问题:不能继承抽象类的有参构造方法解决:在实体类中定义有参构造方法2.定义一个测试类,在测试类分别定义类的对象,再用类对象调用其getArea方法求其面积3..在抽象类中定义一个drawSquare()方法,具体类通过Graphics类型参数的方法实现相应功能(drawPolygon(),fillPolygon()实现多边形的绘制,drawOval(),fillOval(实现圆的绘制))4.添加一个的Application应用程序,在面板上添加鼠标点击响应方法,方法中定义不同square实体类对象调用响应drawSquare()方法在面板上绘画响应square五.实验结果:六.讨论与分析:1.通过这次实验懂得了类的继承和多态的基本设计及其实现过程。2.对java的图形用户界面设计、事件设计方法有了初步的了解。七.关键代码packageGetarea;publicclassTest{publicstaticvoidmain(String[]args){doublex=8.0;RightTrianglea=newRightTriangle(x);System.out.println(RightTriangle:+a.GetArea());x=10;Squareb=newSquare(x);System.out.println(Square:+b.GetArea());x=12;Circlec=newCircle(50);System.out.println(Circle:+c.GetArea());Circlecircle=newCircle(50);RightTrianglerightTriangle=newRightTriangle(50);Squaresquare=newSquare(50);newPaintFrame(circle,rightTriangle,square);}}voidcontentPane_mouseClicked(MouseEvente)//鼠标点击响应函数{doublex=20;RightTrianglea=newRightTriangle(d);//定义一个直角边为x的直角三角形a.drawSquare(contentPane.getGraphics());//绘画这个直角三角形在面板上Squareb=newSquare(d);//定义一个边长为x的矩形b.drawSquare(contentPane.getGraphics());//绘画这个矩形在面板上Cyclec=newCycle(d);//定义一个半径为x的圆c.drawSquare(contentPane.getGraphics());//绘画这个圆在面板上}