下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922

asp程序员如何转行为J2EE之java基础上(14)

作者:课课家教育     来源: http://www.kokojia.com点击数:710发布时间: 2016-02-03 15:36:42

标签: java开发java语言java应用

大神带你学编程,欢迎选课

      子类构造函数

      构造函数不是真正的类成员,因而不对构造函数进行继承。 BankAccount 构造函数创建 BankAccount 对象,因此,不能在 CheckingAccount 类中使用它来创建 CheckingAccount 对象。但是,可以从超类中使用构造函数来初始化继承这个超类的子类的一部分。换句话说,您经常需要在子类构造函数中调用超类构造函数来对子类对象进行部分初始化。使用 super 关键字,后接代表要调用的超类构造函数的参数的参数化列表就可以做到这一点。如果您要在某个构造函数中使用 super 关键字来调用超类的构造函数,则它必须是构造函数体中的第一个语句。

asp程序员如何转行为J2EE之java基础上(14)_java开发_java语言_课课家

      例如,您需要编写 CheckingAccount 构造函数来初始化 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() 方法。

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 对象。

赞(0)
踩(0)
分享到:
华为认证网络工程师 HCIE直播课视频教程