第7章 其他的继承概念与技术.ppt

  1. 1、本文档共55页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第7章 其他的继承概念和技术 主要内容 了解如何要求子类通过在超类中包含抽象方法来重写超类方法 创建Java接口并使用某接口要求一个类实现多个方法 通过扩充Exception类创建自定义异常 了解所有的Java类如何隐式扩充Object类 第7章 其他的继承概念和技术 Lease类简介 向Lease添加抽象方法 实现AnnualLease子类 实现DailyLease子类 测试AnnualLease和DailyLease类 了解和使用Java接口 使用自定义异常 Object类和继承 属性: balanceDue, payMonthly. balanceDue :尚未支付的年租金的金额 payMonthly :布尔量,表示是否按月为年租约付款。 如果按月支付租金,最初就会将欠款设置为租金的11/12(假定预先支付的是第一个月的租金)。 向Lease超类中添加抽象方法是要求子类重写方法的一种方式。 另一种方式是要求类中的方法来定义接口,接口是定义抽象方法和常量的Java组件。 Java只能扩充一个超类,但是可以实现多个接口 创建Java接口 在租约示例中,希望所有的子类都包括一个名为calculateFee的方法 创建LeaseInterface接口,使其包含calculateFee方法 // 定义一个包含 calculateFee方法的LeaseInterface接口 public interface LeaseInterface { public abstract double calculateFee(int aWidth); } 可通过扩充Exception类的新类,定义自定义异常; 为自定义异常添加属性; 添加或重写想要让自定义异常调用的方法。 public DailyLease(Date aStartDate, Date anEndDate, int aSlipWidth) { super(aStartDate); setEndDate(anEndDate); // 计算天数 Calendar aCalendar = Calendar.getInstance(); aCalendar.setTime(aStartDate); int day1 = aCalendar.get(Calendar.DAY_OF_YEAR); aCalendar.setTime(anEndDate); int day2 = aCalendar.get(Calendar.DAY_OF_YEAR); setNumberOfDays(day2 - day1); // 计算金额 setAmount(calculateFee(aSlipWidth)); } 7.6 了解和使用Java接口 // LeaseInterface接口要求的方法 public double calculateFee(int aWidth) {double fee; switch(aWidth) { case 10: fee = 20 * getNumberOfDays(); break; case 12: fee = 25 * getNumberOfDays(); break; case 14: fee = 30 * getNumberOfDays(); break; case 16: fee = 35 * getNumberOfDays(); break; default: fee = 0; } return fee; } 7.6 了解和使用Java接口 // CompanyInterface要求的方法 public String tellAboutSelf() {return This is a daily lease for + numberOfDays + days for company + COMPANY_NAME + located at + COMPANY_ADDRESS; } // set accessor method public void setNumberOfDays(int aNumberOfDays) { numberOfDays = aNumberOfDays; } // get accessor method public int getNumberOfDays() { return numberOfDays; } } 7.6 了解和使用Java接口 // 测试 import java.util.*; public class TesterThree { public static void main(String args[]) { // 用Calen

文档评论(0)

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

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

1亿VIP精品文档

相关文档