网站大量收购闲置独家精品文档,联系QQ:2885784924

Java的继承课案.ppt

  1. 1、本文档共42页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Java的继承课案

* Friendly:包权限 如果不加任何权限修饰符,就认为是包权限,也称为默认(缺省)或友好权限,它允许被同一包中的类访问,不允许被其它包的类访问。 根据是否在同一类、是否为子类、是否在同一个包中,可以划分为五种类型归纳如下: public protected friendly默认 private 同一类中是否可见 是 是 是 是 对同一包中的子类是否可见 是 是 是 否 对同一包中的非子类是否可见 是 是 是 否 对不同包中的子类是否可见 是 是 否 否 对不同包中的非子类是否可见 是 否 否 否 访问权限从高到低排序:public、protected、包的(即默认的)、private Java程序设计(SP3002) Java程序设计(SP3002) * 第5讲 Java的继承 继承的概念 继承的实现 变量隐藏与方法覆盖 super关键字 子类的构造顺序 final关键字 回顾:为什么要使用封装 下面代码有什么问题? 如何解决上面设计的缺陷? Dog d = new Dog(); d.age = 1000; 不合理的赋值 使用封装 回顾:什么是封装 面向对象三大特征之一——封装 封装的概念 封装的好处 封装:将类的某些信息隐藏在类内部,不允许外部程序直接访问,而是通过该类提供的方法来实现对隐藏信息的操作和访问 隐藏类的实现细节 只能通过规定方法访问数据 方便加入控制语句 方便修改实现 回顾及提问 构造方法的语法要求是什么? static和final的含义是什么? 请一位同学到白板上画出下面Dog类的类图。 回顾:类图 使用类图描述类 用于分析和设计“类” 直观、容易理解 - name:String - health:int - love:int + strain:String Dog + print( ) : void “+”:public “-”:private “#”:protected· 类名 返回值类型 类型 属性名 参数: 名字:类型,名字:类型 方法名 为什么使用继承 ? 这两个类图有什么问题? - name:String - health:int - love:int - strain:String Dog + print():void + getName():String + getHealth ():int + getLove():int + getStrain:String + Dog() - name:String - health:int - love:int - sex:String Penguin + print():void + getName():String + getHealth ():int + getLove():int + getSex():String + Penguin() 使用继承优化设计 将重复代码抽取到父类中 为什么使用继承 ? 使用继承优化后: 子类与父类是is-a关系,即小类是大类中的一种是继承的基础 减少代码量 方便修改代码 * 现欲定义人(Person)类和学生(Student)类,拟设立如下的属性、方法: Person -name : String -age : int -sex : String + setName(String) : void + getName() : String + setAge(int) : void + getAge() : int + setSex(String) : void + getSex() : String + toString() : String Student -name : String -age : int -sex : String -school : String //新增,下同 + setName(String) : void + getName() : String + setAge(int) : void + getAge() : int + setSex(String) : void + getSex() : String + toString() : String //功能要增强 + setSchool(String) : void + getSchool() : String 问题:Student类的很多属性、方法与Person类相同,新增的部分较少。在已声明Person类的情况下,定义Student类时是否需要将其所有属性、方法写一次?有无简便方法可用? * 回答是肯定的,我们可以让Student类继承Person类。这样,Student类就可以利用Person已有属性、方法,定义时只要

文档评论(0)

jiayou10 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档