java类计算平面图形面积.ppt

上传人:max****ui 文档编号:6263228 上传时间:2020-02-21 格式:PPT 页数:30 大小:731KB
返回 下载 相关 举报
java类计算平面图形面积.ppt_第1页
第1页 / 共30页
java类计算平面图形面积.ppt_第2页
第2页 / 共30页
java类计算平面图形面积.ppt_第3页
第3页 / 共30页
点击查看更多>>
资源描述
类的继承 主要内容 学习目标及内容 理解类的继承关系掌握Java类的继承实现理解继承规则掌握super的使用掌握方法重写熟悉构造方法的继承 知识回顾 类是抽象 描述一类事物的特征和行为类的定义成员变量 描述对象属性 在类中随意使用构造方法 与类同名 没有返回类型 无需显式调用 创建对象时自动调用 可以重载成员方法 完成相应功能 可以重载访问权限 public protected 缺省 private对象的创建与使用类的实例 是具体化的东西 一 引入 什么是继承 汽车 型号 排量 颜色卡车 型号 排量 颜色 载重 汽车类classVehicle Stringmodel 汽车型号floatdisplacement 汽车排量Stringcolor 汽车颜色 卡车类classTruck Stringmodel 卡车型号floatdisplacement 卡车排量Stringcolor 卡车颜色floatcarry 卡车载重 使用继承 代码重用 使用继承描述汽车类和卡车类 汽车类classVehicle Stringmodel floatdisplacement Stringcolor 描述卡车类 继承汽车类classTruckextendsVehicle floatload 卡车载重 其他三个特性继承汽车类的 可以不要重复定义 继承是利用已存在的类定义新的类 可以实现代码的重复使用 提高效率继承是类之间的一种一般和特殊的关系 思考 现实生活中还有哪些对象之间存在继承关系 二 类的继承语法规范 Java中被继承的类叫父类 超类 基类 继承一个类产生的新类叫子类 派生类 创建类时通过extends指明是已有类的子类 类修饰符 class子类名extends父类名 类体 定义子类自己的成员变量和成员方法或重写父类的方法 可以来自系统类库 也可以是用户自定义类 Java中类的继承体现 子类继承父类的体现 继承父类的所有成员变量和方法 重写父类的方法 增加自己新的属性和方法 子类是作为另一个类的扩充或修正而定义的一个类 子类总比父类多一些东西 类的继承规范 说明 1 Java不支持多重继承 每个子类只能有一个父类 2 继承关系可以传递每个子类也可能成为将来某个类的父类直接父类 子类直接继承的类间接父类 两级或两级以上的关系 3 Java中若未明确指定父类 则默认继承Object类 Java类层次结构 除了根类 每个类都一个唯一的父类 三 继承的实现 父类定义 publicclassShape1 图形类 父类 intsideNumber 边数Stringtype 类别publicvoidsetSideNumber intsideNumber this sideNumber sideNumber switch sideNumber case1 type 圆 break case3 type 三角形 break case4 type 矩形 break default type 本程序无法计算 publicStringgetType returntype 继承的实现 子类定义 publicclassCircle1extendsShape1 doubleradius publicdoublegetRadius returnradius publicvoidsetRadius doubleradius this radius radius publicdoublegetArea doublearea Math PI radius radius 计算圆的面积returnarea publicdoublegetPerimeter return2 Math PI radius 计算并返回圆的周长 思考 Circle类中有哪些属性和方法 继承的实现 测试类定义 publicclassTestCircle1 publicstaticvoidmain String args Circle1myShape newCircle1 myShape setSideNumber 1 调用超类的方法myShape setRadius 5 2 调用子类的方法System out println myShape的类别是 myShape getType doublearea myShape getArea System out println myShape的面积是 area System out println myShape的周长是 myShape getPerimeter 课堂实践 定义图形类的子类 三角形类和矩形类 分别计算其面积及周长 理解动物类之间的继承关系 通过Java类的继承体现各种动物之间的关系 小结 继承可以简化类的定义 实现代码重用Java是单继承的 父类只能有一个Java的继承可以传递 可以有多层结构每个子类只增加自己独特的属性和方法子类内除了自己定义的属性和方法外 还有继承到的父类的非私有的属性和方法Java通过接口实现类似多重继承功能 四 继承规则 父类和子类在同一个包父类中private修饰的成员不能被子类继承 父类中缺省 protected和public修饰的成员都被子类继承父类和子类在不同一个包子类继承父类时同样要求能够找到超类 因此父类必须有package语句 子类必须有import语句 父类还必须有public修饰符父类中private和缺省修饰的成员不能被子类继承父类中proteded和public修饰的成员都被子类继承父类的成员可以在子类中直接使用 但不能通过子类对象使用 访问修饰符的控制范围 可访问 可继承 类的继承 继承规则图示 包2 子类2 PublicSuperClass 子类1 publicintb protectedintc inta publicintb protectedintc privateintd inta publicintb protectedintc 包1 被继承到 被继承到 被继承到 被继承到 被继承到 no import 五 变量隐藏和方法重写 子类对父类可做扩展和特殊化创建新的成员 变量或方法重新定义父类中已有的变量 变量隐藏重新定义父类中已有的方法 方法重写 覆盖 overwrite或override 变量隐藏 子类重新定义从父类继承的完全相同的变量称为变量隐藏 变量隐藏后变量的处理当子类执行继承自父类的操作时 处理的是父类的变量当子类执行自己定义的方法时 操作的是自己的变量 把父类的变量 隐藏 起来 classPerson Stringid Stringname Stringaddress publicvoidshowName System out println name classStudentextendsPerson Stringaddress 重新定义父类变量publicvoidshowInfo showName 调用父类的方法System out println Student address 使用的是子类的address 方法的重写 覆盖 重写是子类根据需要重新定义继承自父类的方法 使子类具有自己的行为 子类中的重写的方法应与父类中的被覆盖的方法有完全相同的 方法名称 参数列表 返回值类型 重写时 修改方法的修饰权限只能从小到大private default protected public classEmployee Stringname publicvoidshowInfo System out println name classManagerextendsEmployee Stringdepartment publicvoidshowInfo System out println name System out println Managerof department 示例 隐藏和覆盖 classMyClass protectedStrings amemberofMyClass protectedvoidtest System out println s publicclassMySubClassextendsMyClass publicStrings amemberofMySubClass 隐藏publicvoidtest 重写super test System out println s publicstaticvoidmain String args MySubClassmsc newMySubClass System out println msc s msc test amemberofMySubClassamemberofMyClassamemberofMySubClass 示例 成员隐藏 方法覆盖 classA intx 1234 voidshow System out println classA classBextendsA doublex 567 89 voidshow super show System out println calssB classCextendsB charx c voidshowABC System out println super x System out println x super show show voidshow System out println classC classOverTest publicstaticvoidmain Stringargs Ccc newC cc showABC 567 89cclassA calssB classC 成员隐藏 对变量名相同重新定义 类型可以不同方法覆盖 方法名称 参数列表 返回值类型必须相同 六 this和super 系统默认 每个类有null this和super三个域 直接使用this引用自身对象super引用父类对象this的主要作用是将自身对象当作参数 传给别的对象的成员方法super用来引用父类中的 被覆盖的 方法 被隐藏的 变量及构造方法 this和super可以调用当前对象或父类对象的构造函数 七 构造方法的继承原则 子类没有定义构造方法使用默认构造方法 无条件自动继承父类无参构造方法 并在创建新子类对象时自动执行 子类定义自己的构造方法若子类的构造方法中没有super 语句 创建对象时系统将先自动调用继承自父类的无参构造方法 再执行自己的构造函数 子类的构造方法定义中 如要调用父类的含参数的构造方法 需用super关键字 且该调用语句必须是子类构造方法的第一个可执行语句 构造方法可利用this调用本类其他的构造方法 此时this应是第一个可执行语句 publicclassAextendsF5 privateF1f1 newF1 privateF2f2 newF2 A System out println A publicstaticvoidmain Stringargs Aa newA classF1 F1 System out println F1 classF2 F2 System out println F2 classF3 F3 System out println F3 classF4extendsF3 F4 System out println F4 classF5extendsF4 F5 System out println F5 构造方法的调用顺序 面试和资格考试重点 F3F4F5F1F2A 有父类的话先调用父类的构造方法 如果父类之上还有父类 则继续向上调用 直到最顶层父类为止 再一层一层向下调用其它父类的构造方法 当调用完最靠近子类的父类的构造方法时 执行本子类成员对象的构造方法 执行子类的构造方法 课堂练习思考 classMeal Meal System out println Meal classBread Bread classCheese Cheese classLettuce Lettuce classLunchextendsMeal Lunch classPortableLunchextendsLunch PortableLunch classSandwichextendsPortableLunch Breadb newBread Cheesec newCheese Lettucel newLettuce Sandwich publicstaticvoidmain String args newSandwich Meal Lunch PortableLunch Bread Cheese Lettuce Sandwich 课后作业 构造方法的继承规则 classSuperClass privateintn SuperClass System out println SuperClass SuperClass intn System out println SuperClass n this n n classSubClassextendsSuperClass privateintn SubClass super 100 System out println SubClass SubClass intn System out println SubClass n this n n publicstaticvoidmain String args SubClasssc1 newSubClass SubClasssc2 newSubClass 200 总结 继承可以实现代码复用继承规则同一个包内不同包内变量隐藏方法重写 重载的区别 this和super关键字构造方法的继承和调用顺序 下课
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!