




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务四:员工继承关系程序设计单元二:面向对象程序设计教学目标知识目标继承的概念;理解继承关键字的意义;父类与子类之间的关系,this、super关键字;掌握多态的概念;掌握最终类和抽象类概念及用途。能力目标能会分析对象间的继承关系并使用extends实现;能会使用this和super关键字进行相应操作;运用多态概念实现程序编写。教学内容4任务陈述123知识准备任务实施任务拓展任务实训5任务描述:
公司中含有三类员工分别是雇员、行政人员和经理。由于类别不同对于三类员工分别使用类进行标示。要求雇员包含:属性有姓名和工号;行为有工作和加班。行政人员包含:属性有姓名、工号和职务;行为有工作和管理。经理包含:属性有姓名、工号、职务和部门;行为有工作和外交。使用继承技术实现公司员工的信息管理。运行结果:1.任务陈述2.知识准备2.11继承2.11.1继承的概念
面向对象程序设计中,在已有类的基础上定义新类,而不需要把已有类的内容重新书写一遍,这就叫做继承。已有类称为基类或父类,在此基础上建立的新类称为派生类或子类。继承关系可以描述为:子类继承了父类或父类被子类继承。子类与父类建立继承关系后,子类也就拥有了父类的非私有的成员属性和成员方法,同时还可以拥有自己的属性和方法。2.知识准备2.11.2继承的实现
继承的英文翻译为inherit,但是由继承定义可以看出子类实际上是扩展了父类,因此Java中继承是通过关键字“extends”来实现的。关键字“extends”说明要构建一个新类而新类是从一个已经存在的类中衍生出来的。格式如下:
[修饰符]class子类名[extends父类]【实例2-11】使用继承思想实现汽车类,以及公交车和卡车类。2.知识准备继承实现方式注解:1.Java只允许单继承,而不允许多重继承,也就是说一个子类只能有一个父类;2.如果子类继承了父类,则子类自动具有父类的全部非私有的数据成员(数据结构)和成员方法(功能);3.子类可以定义自己的数据成员和成员函数,同时也可以修改父类的数据成员或重写父类的方法;4.Java中却允许多层继承。例如,子类A可以有父类B,父类B同样也可以再拥有父类C。因此子类都是“相对”的;5.在Java中,Object类为特殊超类或基类,所有的类都直接或间接地继承Object。【经验】我们可以看出父类都是概念性的类别词汇,例如:汽车、电灯、风扇。而汽车又可分为公交车、货车等;电灯又分为台灯、日光灯、彩灯等;风扇又可分为吊扇、台扇等。Java是面向对象程序设计语言,来形容实际存在的实体对象,所以编程前对程序需求分析应从对象入手,总结多个对象之间的相同点和不同点,把相同点抽象出来组成一个概念性的父类,把不同点作为子类自己独有的性质。因此通常情况父类是没有实例化的必要。2.知识准备2.12方法的覆盖
当子类继承父类,而子类中方法与父类中方法的名称、返回类型及参数都完全一致时,就称子类中的方法覆盖了父类中的方法,有时也称为方法的“重写”。
方法的重写相当于子类对父类某些功能的重新实现,因此在父类的方法中很多是空方法或是具有所有子类共性的功能。【实例2-12】父类workman中有一个print方法,使用一个子类Managerwork来继承workman并重写父类的print方法。2.知识准备2.13this和super关键字2.13.1this关键字this有两种用法:第一种用法中,this代表它所在类的实例化对象。可以理解为是类对象的一个简单引用,利用this可以连用当前对象的方法和变量,特别是当方法名和变量名很长时,这种调用更加有意义。第二种用法,解决成员变量和局部变量重名的问题。第三种用法,在同一个类中不同构造方法之间的调用需要使用this。【实例2-13】this关键字的三种用法举例。2.知识准备2.13.2super关键字super主要的功能是完成子类调用父类中的内容。Super有两种用法:第一种用法中,super表示的是所在类的直接父类对象,使用super可以调用父类的属性和方法。第二种用法,子类的构造方法中可以调用父类的构造方法。【实例2-14】super关键字的两种用法举例。2.知识准备2.14多态2.14.1多态的概念
父类可以被多个子类继承,那么在面向对象思想中“态”是指“子类和父类”两种状态,而一个父类可以拥有多个子类,那么子类和父类总起来就可以成为“多态”。(非正式定义)例如:父类记作A,有子类a1和a2。Aa=newa1();Aa=newa2();Aa=newA()。那么可以看出对于父类A的声明a它可以等于(具备)三个new出来的对象(状态)。2.知识准备方法重写是指父类中的方法在被子类继承过去后,子类可重新实现方法体内容,这样子类和父类中就存在了一个名字相同但实现不同的方法。假设上个例子中父类A中有public权限方法method(),同时子类a1和a2对该方法进行重写。三个语句所产生的对象a分别去调用method()方法。第一句是调用子类a1中的method(),第二句则调用子类a2中的method(),第三句则调用父类A的method()。在面向对象的程序设计中,需要利用这样的“重名”现象来提高程序的抽象度和简洁性。正式定义:多态是指Java的运行时多态性,它是面向对象程序设计中代码重用的最强大机制,Java实现多态的基础是动态方法调度,就是指父类某个方法被其子类重写时,可以各自产生自己的功能行为。2.知识准备2.14.2多态的用法多态的用法一般可以归结为2种:一种用法是使用父类声明的数组存储子类的对象;例如:父类A,子类B、C、D都继承父类。
A[]a=newA[];
a[0]=newB();a[1]=newC();a[2]=newD();另一种用法是使用父类声明作为方法形参,子类对象作为实参传入。
例如:上面的A、B、C、D的继承关系依然成立,普通类L中有个方法定义如下:publicvoidmothed(Aa){……}在主类中有一个L的对象l,那么l.method(newB());
l.method(newC());
l.method(newD());【实例2-15】员工管理系统中,员工分为普通员工(CommEmp)、管理人员(Manager)和人力资源(HR)。要求HR对所有员工进行评测。2.知识准备2.15.最终类和抽象类2.15.1最终类
Java中final关键字可用来修饰类、方法和局部变量。修饰过的类叫做最终类,此类不能被继承。修饰过的方法叫做最终方法,此方法不能被子类复写。修饰过的变量实际上相当于常量,此变量(成员变量或局部变量)只能赋值一次。2.知识准备【实例2-16】最终类错误示例程序设计。publicclassTestFinal{ publicstaticfinalintTOTAL_NUMBER=5; publicintid; publicTestFinal(){ id=++TOTAL_NUMBER;
//非法,对final变量TOTAL_NUMBER进行二次赋值了 } publicstaticvoidmain(String[]args){ finalTestFinalt=newTestFinal(); finalinti=10;finalintj; j=20; j=30;
//非法,对final变量进行二次赋值 }}2.知识准备2.15.2抽象类Java中存在一种类专门用来当作父类的类,这种类类似“模版”,其目的是要设计者依据它的格式来修改并创建新的类。抽象类的作用实际上是一种经过优化了的组织方式,这种组织方式使得所有的类层次分明,简洁精练。
抽象类是创建一个体现某些基本行为的类,该类可以声明抽象方法,抽象方法没有方法体,只能通过继承在子类中实现该方法。抽象类和抽象方法都必须用abstract关键字来修饰;
抽象类不能被实例化,也就是不能用new关键字去产生对象;抽象方法只需声明,而不需实现;含有抽象方法的类必须被声明为抽象类,抽象类的子类必须复写所有的抽象方法后才能被实例化,否则这个子类还是个抽象类。【实例2-17】抽象类程序设计1.实现思路
员工是一般性的概念,在定义类时,将经理类、行政类中相同的属性和方法抽象出来,集中放在“员工”父类中,形成一种共享的机制,经理类、行政类中只放自己特有成员变量和成员方法,减少重复代码。这样的员工类称为父类,行政人员类、经理类称为子类。子类继承父类的非私有成员变量和成员方法。打开Eclipse,包中定义员工类;在员工类中只定义共有的成员变量,构造方法,定义共有的方法;定义行政类,经理类,只定义自己特有属性和方法;编写测试类,分别声明对象进行调用。3.任务实施2.程序代码publicclassemployee{//员工类
Stringname;
StringNo; publicvoidEmployee(){//构造函数
} publicvoidwork(){ ……… }}publicclassadministrationextendsemployee{//行政人员
Stringposition publicvoidmanager(){ ……… }}3.任务实施4.任务拓展Object类讲解:
任何类的父类都是Object,根据多态的概念,任何子类的对象都可以赋值给父类的引用。也就是说任何类的所有势力都可以用Object来代替。例如:Objectobj=”String”;
由于整数、字符型等基本数据类型不属于对象类型(引用类型),所以不能使用Object来指向这些基本数据类型
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 桩基冬季施工方案
- 农业项目资金筹措方案
- 汽车行业基础知识
- 大理石楼地面施工方案
- 红砖建筑加固施工方案
- 2025年非调质钢项目发展计划
- 山东省滨州市邹平市2024-2025学年七年级上学期期末考试数学试卷(原卷版+解析版)
- 非机动车棚工程施工方案
- 随州钢结构农村房施工方案
- 沂源公路标志牌施工方案
- 人文社科书籍《中国在梁庄》
- 2025年上海市中考语文备考之记叙文十大考点梳理(附模考练习及参考答案)
- 第12课 结交朋友-初识人工智能(教学设计)2023-2024学年第四册信息技术河大版(三起)
- 校园餐专项整治行动工作方案
- RB/T 223-2023国产化检测仪器设备验证评价指南气相色谱仪
- DB3417-T 031-2024 学校食堂场所布局设置规范
- FANUC机器人培训教程(完成版)
- 《孤独症谱系障碍:家长及专业人员指南》笔记
- 2024年全国职业院校技能大赛高职组(检验检疫技术赛项)考试题库(含答案)
- 博士后研究报告(出站)
- 2024年单招考试题
评论
0/150
提交评论