References and Inheritance ■也可以将父类对象赋给一个子类引用,但是需要 进行类型转换。一般不常用,可能会引起问题。 个 object引用可以指向任何对象。因为所有类 都是由 object类派生的
6 References and Inheritance ◼也可以将父类对象赋给一个子类引用,但是需要 进行类型转换。一般不常用,可能会引起问题。 ◼一个object引用可以指向任何对象。因为所有类 都是由object类派生的
■被引用对象类型决定被调用方法,而不是引用类型。 ■如果 oliday类有一个方法叫 celebrate, Christmas类重载了这个方法。 Now consider the following invocation: day. celebrate()i
◼ 被引用对象类型决定被调用方法,而不是引用类型。 ◼ 如果 Holiday 类有一个方法叫 celebrate, Christmas 类重载了这个方法。 ◼ Now consider the following invocation: day.celebrate();
Polymorphism via Inheritance ■分析下列类层次结构: StaffMember Volunteer Employee Executive Hourly
Polymorphism via Inheritance ◼ 分析下列 类层次结构: StaffMember Executive Hourly Volunteer Employee
Polymorphism via Inheritance Now let's look at an example that pays a set of diverse employees using a polymorphic method See Firm iava(page 317) See Staff. iava (page 319 See StaffMember, iava(page 320) See Volunteer iava(page 321) See Employee. java(page 322 See Executive, iava(page 323) See Hourly iava(page 324
Polymorphism via Inheritance ◼ Now let's look at an example that pays a set of diverse employees using a polymorphic method • See Firm.java (page 317) • See Staff.java (page 319) • See StaffMember.java (page 320) • See Volunteer.java (page 321) • See Employee.java (page 322) • See Executive.java (page 323) • See Hourly.java (page 324)
93利用接口实现多态性 ■接口名可以用作声明对象引用变量的类型。 public interface Speaker i public void speak(; ■ Speaker current public boid announce( String str) ■一个接口引用变量可以指向任何实现该接口的实现类的 对象。实现类于其所实现的接口关系如同子类于父类的关 系,实现类与其接口之间有“是一种”关系。 ■执行代码时实际调用的方法取决于调用发生时候接口引 用所指向的对象的类型。 current speak ()i
9.3 利用接口实现多态性 ◼接口名可以用作声明对象引用变量的类型。 public interface Speaker { public void speak(); public boid announce (String str); } ◼Speaker current; ◼ 一个接口引用变量可以指向任何实现该接口的实现类的 对象。实现类于其所实现的接口关系如同子类于父类的关 系,实现类与其接口之间有“是一种”关系。 ◼ 执行代码时实际调用的方法取决于调用发生时候接口引 用所指向的对象的类型。 current.speak();