第+6+章+类的继承

第+6+章+类的继承

ID:45720980

大小:379.50 KB

页数:87页

时间:2019-11-16

第+6+章+类的继承_第1页
第+6+章+类的继承_第2页
第+6+章+类的继承_第3页
第+6+章+类的继承_第4页
第+6+章+类的继承_第5页
资源描述:

《第+6+章+类的继承》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第6章类的继承能力要求理解继承的概念以及父类和子类的关系掌握关键字super和this的使用理解成员变量的继承,了解成员变量的隐藏掌握成员方法的继承与覆盖理解如何在父类和子类中使用构造方法掌握抽象方法的使用6.1类的继承6.1.1继承的概念在面向对象程序设计中,可以从已有的类派生出新类,这叫做继承(inheritance)。派生出的新类称为已有类的子类。已有类称为父类(超类)。继承性很好地解决了软件的可重用性问题。通过继承,一个类可能拥有已有类的所有功能。因此,只须指明新类与现有类的不同,即增加自己的属性和方法即可。通过继承,可以提高

2、软件的开发效率,增加程序的可维护性,并且可以利用已有的类完成复杂的开发。Java不支持类的多重继承,Java只支持类的单继承,即每个子类只能有一个直接父类。6.1.2父类和子类在类声明时通过关键字extends来声明一个类的子类。其格式如下:class子类名extends父类名[implement接口名]{//类体}说明:在完成上面的定义后,子类中只能继承父类中访问权限定义为:public、protected、无修饰符的成员变量和成员方法。定义权限为private的成员变量和成员方法不能继承。【例6.1】设计一个Person类,它包括

3、编号(no)和姓名(name)两个成员变量。从Person类派生出一个Student类,增加班号(classname)和成绩(score)两个成员变量。classPerson{//成员变量protectedintno;//编号protectedStringname;//姓名//成员方法略}publicclassStudentextendsPerson{//成员变量privateStringclassname;//班号privatedoublescore;//成绩//成员方法略}(1)保存程序:Student.java(2)编译程序:j

4、avacStudent.java例题分析:子类Student不但继承了父类Person的用protected修饰的成员变量no和name,还增加了子类自己的成员变量classname和score。【例6.2】编写一个计算几何形状面积的程序,该几何形状可能是矩形、圆形或其他的形状。设计这些类,并创建一个测试类测试它们。/*Shape类作为父类,它有两个成员变量(名称、面积)和两个成员方法(构造方法、显示方法)。为了能够实现继承性,这些成员都不能是私有的,因此把成员变量作为保护类型(protected),成员方法作为公有类型(public

5、)。*/classShape//几何形状{protectedStringname;protecteddoublearea;publicShape(){name="不确定的几何形状";area=0;}publicvoidDisplay(){System.out.println("几何形状:"+name);System.out.println("面积:"+area);}}/*当不知道具体的形状时,不能计算面积。矩形和圆形都是几何形状,我们把它作为Shape类的子类,两个类都在构造方法中初始化自己的成员变量,在成员方法中计算面积。*/cla

6、ssRectangleextendsShape//矩形{privatedoublelength,width;publicRectangle(doublelen,doublewid){name=“矩形";//父类Shape的成员变量protectedStringname;length=len;width=wid;}publicvoidArea2(){area=length*width;}//父类Shape的成员变量protectedStringarea}classCircleextendsShape//圆{privatedoublera

7、dius;publicCircle(doubler){name=“圆";radius=r;}publicvoidArea2(){area=Math.PI*radius*radius;}}请思考:怎样定义一个子类“梯形”,并计算梯形的面积。“梯形”的父类是Shape。classTixingextendsShape//梯形{privatedoublea,b,h;publicTixing(doublea1,doubleb1,doubleh1){name="梯形";a=a1;b=b1;h=h1;}publicvoidArea2(){area=

8、(a+b)*h/2;}}怎样定义一个子类“梯形”,并计算梯形的面积。“梯形”的父类是Shape。publicclassShapeTester3{publicstaticvoidmain(Stringargs[]){Sha

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。