- 1、本文档共43页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
6.3.2 抽象类 【例6-3】抽象类的使用 PractitionerAbstract.java,DriverA.java,SalespersonA.java,PractitionerAbstractTest.java 6.3.2 抽象类 使用抽象类时有一些需要注意的地方: 包含了抽象方法的类必须是抽象类,没有包含抽象方法的类也可以是抽象类 抽象类不能被实例化,即使定义了构造方法,但可以引用被实例化的子类对象 能被实例化的子类必须实现抽象类声明的所有抽象方法,否则子类仍然是抽象类 抽象方法不能使用private、static和final修饰符 6.3.2 抽象类 从面向对象的角度来看,抽象类统一了子类操作的接口格式,并能实现多态性特征 尽管使用普通类和抽象类都可以实现多态,但由于抽象类限定了子类行为接口,体现了对现实世界更高层次的抽象,使用它来实现类的多态更加规范、统一,便于程序的维护和管理 6.3.3 接口 单重继承与多重继承 6.3.3 接口 接口机制 6.3.3 接口 声明接口: [Modifiers] interface InterfaceName [extends InterfaceList] { InterfaceBody } InterfaceBody接口体包含默认为public static final的常量和默认为public abstract的抽象方法,也可以显式声明类型 6.3.3 接口 声明实现接口的类: [Modifiers] class ClassName [extends SuperClassName] implements InterfaceList { ClassBody } 6.3.3 接口 【例6-4】接口的使用 Minor.java,Adult.java,Pupil.java,Worker.java,WorkStudent.java,InterfaceTest.java 6.3.3 接口 6.3.3 接口 接口实现了比抽象类更高的抽象层次,同时也提供了比抽象类更多的灵活性: 抽象类表示一种继承关系,一个类只能有一个直接父类,却可以实现多个接口 抽象类中可以成员变量,也可以有非抽象方法,接口中却只能有常量和抽象方法 抽象类和接口反映不同的设计理念,抽象类表示“is-a”关系,而接口表示“like-a”关系 6.4 应用实例:平面几何图形基本类层次设计 【例6-5】平面几何图形基本类层次设计 Shape.java,Circle.java,Triangle.java,Rectangle.java,Square.java,ShapeTest.java 6.4 应用实例:平面几何图形基本类层次设计 尚辅网 / 6 继承与多态 6.1 引例:对Person类的继承 6.2 类的继承 6.3 类的多态 6.4 应用实例:平面几何图形基本类层次设计 6.1 引例:对Person类的继承 【例6-1】对Person类的继承 Person.java,Student.java,StudentTest.java 6.2 类的继承 6.2.1 Object类 6.2.2 子类 6.2.3 成员的隐藏与重载 6.2.4 最终类 6.2 类的继承 6.2 类的继承 在考虑使用继承时,有一点需要注意,那就是两个类之间的关系应该是“is-a”关系,即子类对象也是其父类对象 Employee 是一个人,Manager 也是一个人,因此这两个类都可以继承 Person 类 Leg 类却不能继承 Person 类,因为腿并不是一个人 6.2.1 Object类 Java的类层次结构中,Object类是根类,所有其它类都直接或间接继承自它 定义类时,如果没有指明父类,则该类的父类就是Object 6.2.1 Object类 作为根类,Object类定义了所有对象都应该具有的基本状态和行为,包括数组在内的所有对象都实现它的方法 Object类提供了若干成员方法,子类可以直接调用,非final方法还可以根据需要重写,即覆盖 6.2.1 Object类 6.2.1 Object类 用户通常需要覆盖equals()和toString()方法,以便根据对象的特殊性进行比较和获取对象内容的字符串表示 另外,Java建议用户覆盖hashCode()方法,因为Object及其他标准类的某些方法会隐含对它的调用 6.2.2 子类 定义子类: [Modifiers] class ClassName extends SuperClassName { ClassBody } 例如: public class Student extends Person { ... } 6.2.2 子类 继承具有“is-a”的
您可能关注的文档
- C++面向对象程序设计课件作者张德慧周元哲主编第10章节类库和C++的标准模板库STL.ppt
- Linux实用技能教程——基于Fedora和RHEL5课件作者孙永道电子课件第4章节系统启动配置.ppt
- 工程力学基础课件作者徐博侯第4章节弹性杆件的应力分析和位移分析.ppt
- C++语言程序设计课件作者尹季昆主编第四章节多态性.ppt
- CATIAV5R20机械设计教程高校本科教材课件作者詹友刚第05章节工程图设计.ppt
- CorelDrawX4平面设计教程课件作者邹利华项目7标志设计.ppt
- Linux实用技能教程——基于Fedora和RHEL5课件作者孙永道电子课件第5章节常用命令.ppt
- 工程力学静力学与材料力学课件作者王永廉15组合变形.ppt
- Linux实用技能教程——基于Fedora和RHEL5课件作者孙永道电子课件第6章节用户管理.ppt
- 工程力学课件作者胡红玉第9章节梁弯曲时的刚度计算.ppt
- 浙江省县域教研联盟2024-2025学年高三上学期12月模拟考试技术试题-高中信息技术2.docx
- 湖南省岳阳市云溪区2024-2025学年高三上学期11月期中地理试题.docx
- 浙江省杭州市北斗联盟2024-2025学年高一上学期期中联考政治试题2.docx
- 广东省肇庆市实验中学高三理科化学第16周限时训练.doc
- 黑龙江省牡丹江市第一高级中学2024-2025学年高一上学期11月期中地理试题2.docx
- 云南省玉溪市峨山一中2017-2018学年高二四月份月考生物试题.doc
- 山东省实验中学高三第三次诊断考试历史试题.docx
- 山东省菏泽第一中学2024-2025学年高二上学期第一次月考历史试题含答案.docx
- 山东省菏泽市2024-2025学年高一上学期11月期中数学试题(A)含解析.docx
- 安徽省六安市舒城中学高三仿真(一)文科综合试题.doc
文档评论(0)