第10章继承接口和包.pptx
程序设计方法
2010-12-1
课件10:2JAVA程序设计与实训指导---程序设计方法基础第1章面向对象的分析与设计第2章程序设计入门第3章Java应用程序基本结构与成分第4章分支控制与循环控制语句第5章类与对象编程初步第6章再论类成员第7章方法重载、内部类、系统类第8章字符串第9章数组第10章继承、接口和包第11章异常处理第12章图形用户界面设计第13章文件的输入/输出与数据库第14章实训
课件10:3第10章继承、接口和包学习目标:类的继承抽象类接口包作业
课件10:410.1类的继承类继承的概述类继承的实现方法的重写重写构造方法子类访问父类方法
课件10:5类继承概述现在你为某公司设计一个人事管理系统,设计了如下一些类:经理类工号姓名管辖部门获取姓名和工号获取所管部门信息客户代表工号姓名所属区域获取姓名和工号获取所属区域信息操作工工号姓名操作工种获取姓名和工号获取操作工种信息
课件10:6类继承概述如果这样设计类,你觉得有什么缺点吗?代码冗余!!!解决方案:员工经理客户代表操作工
课件10:7类继承概述子类父类员工工号姓名获取姓名和工号经理类管辖部门获取所管部门信息客户代表所属区域获取所属区域信息操作工操作工种获取操作工种信息
课件10:8类继承概述Java中,所有的类都是通过直接或间接地继承java.lang.Object得到的。
课件10:910.1类的继承思考题:1、下面列出了4组类的类名,根据你的理解,请分别指出每组中哪个类应该是父类,哪个类应该是子类?Bird(鸟)/Parrot(鹦鹉)Chinese(中文)/Language(语言)Furniture(家具)/Desk(桌子)Tulip(郁金香)/Flower(花)2、下面列出了3个类的类名,请举例列出每个类的3个子类类名。Food(食物)Movie(电影)Hobby(喜好)
课件10:1010.1类的继承类继承的概述类继承的实现方法的重写重写构造方法子类访问父类方法
课件10:11类继承的实现格式:说明:extends为关键字。SubClass为子类名。SuperClass为父类名。这里子类直接地继承了父类,所以SubClass是SuperClass的直接子类;如果SuperClass又继承了其他类,那么SubClass就有间接父类了!如果缺省extends子句,则该类为java.lang.Object的子类。[访问控制权限]classSubClassextendsSuperClass{ //类体}
课件10:12类继承的实现
课件10:13类继承的实现使用类继承来设计程序的好处:更容易理解和书写程序更容易修改程序允许代码复用读一读(Pg16510-1)
课件10:14类继承的实现子类能够继承什么?子类能够继承父类中public和protected的成员。子类能够继承父类中没有访问控制的成员,只要子类和父类在同一个包内。子类不能继承父类隐藏的成员变量和重写的父类方法。子类不能继承父类中private成员。子类不能继承父类中构造方法。因为构造方法不是类的成员。子类中声明了和父类同名的变量,父类的成员变量被隐藏
课件10:15类继承的实现继承的特点:继承是单方向的。我们只允许子类的对象继承父类中的成员变量和方法,父类的对象是不能继承子类中的成员变量和方法。继承的分类单继承:一个子类只能有一个直接父类。多继承:一个子类可以有多个直接父类。注:Java只支持单继承而不继承多继承。父类子类1子类2子类3子类4单继承父类1父类2子类1子类2子类3多继承
课件10:16类继承的实现 THEEND?
课件10:1710.1类的继承类继承的概述类继承的实现方法的重写重写构造方法子类访问父类方法
课件10:18方法的重写定义:方法的重写指的是子类中定义与父类中已定义的名称 相同、参数列表相同、返回类型相同、但方法体不同 的方法。这也体现了Java多态性的特征。例:注:子类通过成员变量的隐藏和方法的重写可以把父类的状态和行为改变为自身的状态和行为!
课件10:19方法的重写两个具有相同名字的方法,那么怎样来区分到底调用的哪个方法呢?答案通过对象所属的类来区别!!!例如:SuperClasssuperObj=newSuperClass();SubClasssubObj=newSubClass();superObj.setX();//调用了父类中的方法setX(),因为superObj的类型