09面向对象4(抽象类和接口)汇编.ppt

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

降低程序耦合度 降低耦合度 开发打印机 墨盒:彩色、黑白 纸张类型:A4、B5 墨盒和纸张都不是打印机厂商提供的 打印机厂商要兼容市场上的墨盒、纸张 用面向接口编程的方式开发 制定墨盒、纸张的约定或标准 打印机厂商使用墨盒、纸张的标准开发打印机 其他厂商按照墨盒、纸张的标准生产墨盒、纸张 定义墨盒接口InkBox 定义纸张接口Paper 定义打印机类 实现墨盒接口 实现纸张接口 约定墨盒标准 约定纸张标准 用墨盒、纸张接口实现打印方法 墨盒和纸张的规格是一种约定 打印机需要遵守这些约定 public interface Paper { /** * 得到纸张大小 * @return 纸张大小 */ public String getSize(); } 纸张的实现 public interface InkBox { /** * 得到墨盒颜色 * @return 墨盒颜色 */ public String getColor(); } 墨盒的实现 接口提供了一种抽象机制,更加灵活 接口使即插即用变得可能 接口针对抽象而不是针对实现 设计与实现的完全分离 更优雅的使用多态 很好的弥补了java不能够支持多重继承的缺陷 更容易更换功能的实现,方便模块化的设计 更容易搭建复杂程序的框架,降低开发风险 如何定义和实现接口? 如何定义和实现抽象类? 如何理解接口是一种约定、一种能力? 用abstract关键字修饰不能在类内实现的方法,这样的方法称为抽象方法,含有抽象方法的类必须声明为abstract,这样的类叫抽象类。 抽象类中不一定包含抽象方法,但包含抽象方法的类一定要声明为抽象类 抽象类本身不具备实际的功能,只能够用于派生时重载。 如果一个类被定义为抽象类,则该类不能进行实例化,必须通过重载的方式来实现抽象类中的方法。 返回 接口是一种更纯的抽象类,它是方法定义和常量值的集合,Java通过接口使得处于不同层次甚至不相关的类可以拥有相同的行为。 接口之间可以继承,从而使功能更强. 在定义的类的过程中,可以实现多个接口,从而实现多继承. 接口定义 格式: [public] interface 接口名 [extends 父接口]{ 接口体;} 接口体包含常量定义和方法定义,接口的变量是自动是public static final属性, 接口中的方法自动是public abstract属性,并没有方法体,以分号结尾。 例子:InterfaceDemo.java 接口实现 格式:[修饰符] class 类名 [extends 父类] [implements 接口]{ 必须实现接口的所有方法; } 返回 作业一: 设计一个形状类(接口)Shape,方法:求周长和求面积 形状类(接口)的子类(实现类):Rect(矩形),Circle(圆形) Rect类的子类:Square(正方形) 不同的子类会有不同的计算周长和面积的方法 创建三个不同的形状对象,放在Shape类型的数组里,分别打印出每个对象的周长和面积 作业二: 某公司的雇员分为以下若干类: Employee:这是所有员工总的父类,属性:员工的姓名,员工的生日月份。方法:getSalary(int month) 根据参数月份来确定工资,如果该月员工过生日,则公司会额外奖励100元。 SalariedEmployee:Employee的子类,拿固定工资的员工。属性:月薪 HourlyEmployee:Employee的子类,按小时拿工资的员工,每月工作超出160小时的部分按照1.5倍工资发放。属性:每小时的工资、每月工作的小时数 SalesEmployee:Employee的子类,销售人员,工资由月销售额和提成率决定。属性:月销售额、提成率 BasePlusSalesEmployee:SalesEmployee的子类,有固定底薪的销售人员,工资由底薪加上销售提成部分。属性:底薪。 写一个程序,把若干各种类型的员工放在一个Employee数组里,写一个方法,打印出某月每个员工的工资数额。注意:要求把每个类都做成完全封装,不允许非私有化属性。 * * 面向对象(抽象类和接口) ? 2011 丰泽教育Java学院、3G学院 All rights reserved. Java编程基础 掌握抽象方法和抽象类的定义和使用(重点) 掌握接口基础知识 理解接口的含义(难点) 能够使用接口编程(重点) 形状类Shape需要提供用于计算面积和周长的方法,但是形状本身没有被确定,那么计算周长和面积的方法就无法确定,此时我们就需要使用抽象类和抽象方法。 由于Shape类计算周长和面积的方法无法确定,那么就可以将

文档评论(0)

2232文档 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档