快速业务通道

走上开放之路: ASP 开发人员的 J2EE 基础(上) - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-18
数来初始化 CheckingAccount 对象。您要使用初始余额来创建 CheckingAccount 对象,因此您传入的是金额。这恰恰与 BankAccount 类中的构造函数非常类似,因此,您使用该构造函数来为您做所有这些工作,如清单 15 所示。

清单 15. 子类构造函数

public class CheckingAccount extends BankAccount {   public CheckingAccount(float balance) {     super(balance);   }   public void cashCheck(float amount) {     withdraw(amount);   } }

您还可以使用 super 关键字来显式地在子类中引用超类的成员。

重载和覆盖

Java 语言允许定义几个同名的方法,只要这些方法的参数不同即可。例如,清单 16 又定义了一个 cashCheck() 方法,该方法带有两个参数,一个是要兑现的支票金额,一个是收取服务的费用。这就叫做方法 重载。

清单 16. 方法重载

public void cashCheck(float amount) {   withdraw(amount); } public void cashCheck(float amount, float fee) {   withdraw(amount+fee); }

在创建子类时,您经常要 覆盖 从超类继承的方法的行为。例如,假定 CheckingAccount 和 BankAccount 之间的一个不同之处是从 CheckingAccount 提取金额时要收取费用。您需要在 CheckingAccount 类中覆盖该 withdraw() 方法,以便收取 0.25 美元费用。可以通过使用 super 关键字,根据 BankingAccount 的 withdraw() 方法来定义 CheckingAccount 的 withdraw() 方法,如清单 17 所示。

清单 17. 方法覆盖

public void withdraw(float amount) {   super.withdraw(amount+0.25F); }

Object 类

Object 类是 Java 类层次结构中的特殊类。所有 Java 类最终都是 Object 类的子类。换句话说,Java 语言支持集中式根类层次结构, Object class 类是该层次结构中的根类。Visual Basic 中也存在相似的概念, Object 变量以后可以实例化为任何类型的类。

由于所有 Java 对象都继承自 Object 类,所以,可以为任何 Java 对象调用在 Object 中定义的方法,获得类似的行为。例如,如果 Object 类定义了 toString() 方法,该方法返回代表该对象的 String 对象。您可以为任何 Java 对象调用 toString() 方法,获得该对象的字符串表示。大多数类定义都覆盖 toString() 方法,以便它可返回该特定类的特定字符串表示。

在 Java 类层次结构根部的 Object 还有一个含义,即所有对象都能向下强制类型转换(cast down)到 Object 对象。在 Java 语言中,您可以定义获得 Object 类的对象的数据结构,这些数据结构可以存放任何 Java 对象。

走上开放之路: ASP 开发人员的 J2EE 基础(上)(15)

时间:2011-03-11 IBM Jeff Wilson

接口

我已经提过,Java 类只允许单继承,这意味着 Java 类只能扩展一个类。Java 语言的设计者感到多重继承太复杂,因此他们改为支持 接口。 接口类似于不能实例化的方法,它定义有方法,但实际上并不实现这些方法。

声明接口的方法与声明类相似,不同之处是使用 interface 关键字而非 class 关键字。接口可以扩展任意数量的超接口。接口内的方法不包含实现。接口方法只是简单的方法定义;它们没有方法体。这与 Visual Basic 使用的接口概念相同;接口由属性和方法声明组成,没有代码。

Account 接口

清单 18 中的代码展示如何为银行帐户编写定义一组功能的基本 Account 接口。注意,在接口中声明的方法没有方法体。

清单 18. Account 接口

public interface Account {   public static final float INTEREST = 0.35F;   public void withdraw(float amount);   public void deposit(float amount); }

实现接口

Java 类只可扩展一个类,但它可以 实现任意数量的接口。当类实现接口时,它必须实现该

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号