- 128 - 习题 1. 类之间的关系除了聚合和关联外,还有继承,请用UML 符号描述下述类之间的关系。 1) 账户和存款帐户 2) 学生和人 3) 水果和橙子 4) 教师和课程 5) 班级和学生 答:1)继承关系; 2)继承关系; 3)继承关系; 4)关联关系; 5)聚合关系。 2. 简述Object 的意义,以及在判断相等时,子类需要如何重写超类的方法。 答:Object 的类。它是所有Java 类(JDK 提供的,第三方类库、用户自定义的)的根类一个类如果在声明时没有明确使用extends 来标记自己派生于某个类,那么编译器将自动将Object 类作为该类的超类,因此,所有的类最终都来自 Object,按照继承的特性,所有的类都继承了Object 类中的所有方法。Object 提供了一个对象基本的行为定义,例如,两个对象的相同比较(equals(… ))、对象的字符串表示(toString())、对象的复制(clone())等等。这些没有用final 修饰的方法其行为一般都需要在子类中重新定义。 在判断相等时,子类需要重写Object 类中的equals 方法,定义自身判断相等的原则。 3. 超类的构造方法是否可以被子类覆盖(重写)? 答:不会,子类并不继承超类的构造方法作为自己的构造方法,因为构造方法用来构造类的对象,子类和父类并非同一类型,因此子类不能直接继承父类的构造方法,必须有自己的构造方法,但是子类的构造方法并不会覆盖超类的构造方法。虽然不能继承超类的构造方法,但子类可以通过 super 关键字来调用父类已定义的构造方法。 4. 试述super 的作用和使用规则。 答:1)显式的调用父类的方法当从一个类继承时,子类和父类都有一个同名方法,也就是子类覆盖了父类的方法,可是又想调用父类的方法,那么就要用super。 2)在构造方法中,与 this 用法类似,利用super 可以调用父类的构造方法。 5. 什么是多态?简述Java 中多态的实现机制。 答:多态性是面向对象的核心特征之一,类的多态性提供类中成员设计的灵活性和方法执行的多样性。在JAVA 中多态性表现如下: (1)方法重载 重载表现为同一个类中方法的多态性.一个类生命多个重载方法就是为一种功能提供多种实现.编译时,根据方法实际参数的数据类型\个数和次序,决定究竟应该执行重载方法中的哪一个. (2)子类重定义从父类继承来的成员 当子类从父类继承来的成员不适合子类时,子类不能删除它们,但可以重定义它们,子类重定义父类成员,同名成员在父类与子类之间表现出多态性,父类对象引...