欢迎来到天天文库
浏览记录
ID:41352378
大小:1.05 MB
页数:126页
时间:2019-08-22
《第4章 类的重用》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第4章类的重用郑莉2目录4.1类的继承4.2Object类4.3终结类与终结方法4.4抽象类4.5泛型4.6类的组合4.7包的应用4.8本章小结34.1类的继承类的继承一种由已有的类创建新类的机制,是面向对象程序设计的基石之一通过继承,可以根据已有类来定义新类,新类拥有已有类的所有功能Java只支持类的单继承,每个子类只能有一个直接父类父类是所有子类的公共属性及方法的集合,子类则是父类的特殊化继承机制可以提高程序的抽象程度,提高代码的可重用性4基类(baseclass)也称超类(superclass)是被直接或间接继承的类派生类(derived-class)也称子类(subclass)
2、继承其他类而得到的类继承所有祖先的状态和行为派生类可以增加变量和方法派生类也可以覆盖(override)继承的方法4.1类的继承4.1.1继承的概念——基类和派生类5子类对象与父类对象存在“ISA”(或“isakindof”)的关系4.1类的继承4.1.1继承的概念——is_a关系6动物类层次举例一般具体动物蛇蜥蜴鲸爬行动物哺乳动物狗巨蜥壁虎壁虎是一种蜥蜴爬行动物是动物的一种4.1类的继承4.1.1继承的概念——图4-17举例4.1类的继承4.1.1继承的概念——又一个例子8派生类产生的对象从外部来看,它应该包括与基类相同的接口可以具有更多的方法和数据成员其内包含着一个基类类型的子对象
3、4.1类的继承4.1.1继承的概念——派生类对象94.1.2继承的语法继承的语法classchildClassextendsparentClass{//类体}类的继承4.1类的继承10在一个公司中,有普通员工(Employees)及管理人员(Magagers)两类人员职员对象(Employees)可能有的属性信息包括员工号(employeeNumber)姓名(name)地址(address)电话号码(phoneNumber)管理人员(Managers)除具有普通员工的属性外,还可能具有下面的属性职责(responsibilities)所管理的职员(listOfEmployees)4.1
4、类的继承4.1.2继承的语法(续)——例4-111Employee与Manager的类图EmployeeemployeeNumbe:intname:Stringaddress:StringphoneNumber:StringManagerresponsibilities:StringlistOfEmployees:String4.1类的继承4.1.2继承的语法(续)——例4-112//父类EmployeeclassEmployee{intemployeeNumbe;Stringname,address,phoneNumber;}//子类ManagerclassManagerextend
5、sEmployee{//子类增加的数据成员Stringresponsibilities,listOfEmployees;}4.1类的继承4.1.2继承的语法(续)——例4-113设有三个类:Person,Employee,Manager。其类层次如图:PersonEmployeeManager4.1.2继承的语法(续)——例4-214publicclassPerson{publicStringname;publicStringgetName(){returnname;}}publicclassEmployeeextendsPerson{publicintemployeeNumber;p
6、ublicintgetEmployeeNumber(){returnemployeeNumber;}}publicclassManagerextendsEmployee{publicStringresponsibilities;publicStringgetResponsibilities(){returnresponsibilities;}}4.1类的继承4.1.2继承的语法(续)——例4-215publicclassExam4_2Test{publicstaticvoidmain(Stringargs[]){Employeeli=newEmployee();li.name="LiM
7、ing";li.employeeNumber=123456;System.out.println(li.getName());System.out.println(li.getEmployeeNumber());Managerhe=newManager();he.name="HeXia";he.employeeNumber=543469;he.responsibilities="Internetproject";System.out.print
此文档下载收益归作者所有