欢迎来到天天文库
浏览记录
ID:25077113
大小:1.06 MB
页数:113页
时间:2018-11-17
《zhoulz-继承与多态-2015》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、118七月2021第5章继承与多态218七月2021继承性与多态性是面向对象程序设计的另外两个重要特性。在Java语言中,提供了能够实现继承性与多态性的完备技术,这使得更多的人们愿意将Java作为软件开发语言,进而充分地施展面向对象抽象性、封装性、继承性与多态性的优势,为构筑新时代的软件开发理念奠定了坚固基础。318七月20217.1类的继承继承机制是面向对象程序设计不可缺少的关键概念,是实现软件可重用的根基,是提高软件系统的可扩展性与可维护性的主要途径。继承是一种由已有的类创建新类的机制。所谓继承是指一个类的定义可以基于另外一个已经存
2、在的类,即子类基于父类,从而实现父类代码的重用。由继承而得到的类称为子类,被继承的类称为父类或超类。Java不支持多重继承,子类只能有一个父类。418七月2021继承关系的UML图形符号表示法两个类的继承关系可以用“isa”表示,即子类是父类所描述的实体集中的子集。也就是说,父类涵盖更加共性的特征,更加具有一般性,子类增加的内容更加具有个性,是一般性之外的特殊内容,因此,又可以说,这种类的继承关系充分地反映了“一般与特殊”的关系。518七月20217.1.1定义子类在Java语言中,定义子类的语法格式为:[修饰符]class子类名ext
3、ends父类名{子类体}其中,“修饰符”是子类的访问特性说明符等;class为定义类的关键字,“子类名”是子类的名称;extends是关键字“子类体”是子类在继承父类内容的基础上,添加的特有内容。618七月2021EmployeeClass类与ManagerClass类的关系图特殊津贴718七月2021//filename:EmployeeClass.javapublicclassEmployeeClass{//雇员类privateStringname;//姓名privatedoublesalary;//工资privateStringd
4、epartment;//部门publicEmployeeClass(){...}publicEmployeeClass(Stringname,doublesalary,Stringdepartment){...}publicvoidsetName(Stringname){...}publicvoidsetSalary(doublesalary){...}publicvoidsetDepartment(Stringdepartment){...}publicStringgetName(){...}publicdoublegetSalary
5、(){...}publicStringgetDeparyment(){...}publicStringtoString(){...}}818七月2021publicManagerClassextendsEmployeeClass{//经理类privatedoublespecial;//特殊津贴publicManagerClass(){...}publicManagerClass(Stringname,doublesalary,Stringdepartment,doublespecial){...}publicvoidsetSpecial
6、(doublespecial){...}publicdoublegetSpecial(){...}publicStringtoString(){...}}918七月2021举例:设计与几何图元有关的类。问题分析:几何图元是指可以绘制的基本几何图形,例如矩形、正方形、圆形、多边形等。鉴于篇幅的考虑,这里只考虑矩形与正方形。假设任何几何图元都有颜色与位置两个属性,因此应该将这些共有特性定义在一个类中,它是顶层类;而矩形还应该有长、宽两个属性,由于矩形是一种几何图元,所以它自然应该拥有几何图元的共有特性,因此可以将矩形类设计为几何图元类的子类
7、;因为正方形是一种特殊的矩形,它的特殊性在于长与宽相等,所以应该将正方形类设计为矩形的子类。1018七月2021ShapeClass类、RectangleClass类与SquareClass类之间的关系类图ShapeClass类是几何图元的通用类;矩形是一种特定的几何图元,因此,RectangleClass类应该是ShapeClass的子类;正方形是一种特殊的矩形,所以SquareClass类是RectangleClass类的子类。1118七月20211218七月2021//filename:ShapeClass.javaimportj
8、ava.util.*;publicclassShapeClass{//几何图元类privateColorClasscolor;//颜色属性privatePointplace;//位置属性publicShap
此文档下载收益归作者所有