练习:多态的作用
练习目标
了解多态的概念、多态的好处和弊端;
掌握如何实现多态;
需求分析
在Java中为了实现多态,允许使用一个父类类型的变量来引用一个子类类型的对象,根据被引用子类对象特征的不同,得到不同的运行结果。多态提高代码了的扩展性和可维护性。为了帮助初学者掌握多态,本案例练习如何实现一个多态程序。
设计思路(实现原理)
1)编写Animal接口,接口中定义sleep()方法。
2)Cat类实现Animal接口的方法,并定义另一个方法catchMouse()。
3)编写测试类ExamplePolymorphism,使Cat对象指向父类Animal的引用,并通过该引用调用sleep()方法。
练习目标
了解多态的概念、多态的好处和弊端;
掌握如何实现多态;
需求分析
在Java中为了实现多态,允许使用一个父类类型的变量来引用一个子类类型的对象,根据被引用子类对象特征的不同,得到不同的运行结果。多态提高代码了的扩展性和可维护性。为了帮助初学者掌握多态,本案例练习如何实现一个多态程序。
设计思路(实现原理)
1)编写Animal接口,接口中定义sleep()方法。
2)Cat类实现Animal接口的方法,并定义另一个方法catchMouse()。
3)编写测试类ExamplePolymorphism,使Cat对象指向父类Animal的引用,并通过该引用调用sleep()方法。
ExamplePolymorphism.java
总结:
1、多态是指对象在不同时刻表现出来的不同状态,在Java中,允许使用一个父类类型的变量来引用一个子类类型的对象。
2、多态的前提:(1)要有继承关系。
(2)要有方法重写。(3)要有父类引用指向子类对象。
3、多态的好处是提高代码的扩展性和可维护性。4、多态的弊端是父类或者接口只能调用自己具备的成员,不能访问子类特有的成员。
总结:
1、多态是指对象在不同时刻表现出来的不同状态,在Java中,允许使用一个父类类型的变量来引用一个子类类型的对象。
2、多态的前提:(1)要有继承关系。
(2)要有方法重写。(3)要有父类引用指向子类对象。
3、多态的好处是提高代码的扩展性和可维护性。4、多态的弊端是父类或者接口只能调用自己具备的成员,不能访问子类特有的成员。
举一反三
- 编程练习:1)编写Animal接口,接口中定义sleep()方法。2)Cat类实现Animal接口的方法,并定义另一个方法catchMouse()3)编写测试类Example12,使Cat对象指向父类Animal的引用,并通过该引用调用sleep()方法。
- 编程实现以下需求:1)编写Animal接口,接口中定义sleep()方法。2)Cat类实现Animal接口的方法,并定义另一个方法catchMouse() 3)编写测试类Test,创建Animal类型引用,并将Cat对象赋给Animal引用(向上转型),并通过该引用调用sleep()方法。
- Java中,父类引用指向子类对象,调用被子类重写了的父类方法可以实现()。 A: 静态多态 B: 编译时多态 C: 向下转型 D: 运行时多态
- 定义一个Animal父类,方法有eat();2.定义三个子类;Cat,Dog,Eagle;每个子类增加新的方法,并重写eat();3.利用多态性定义一个Animal类型的变量a,并将不同子类的实例赋给a;调用eat();观察结果后,并理解多态4.思考,如果a的引用指向一个Cat,如何调用Cat的新增方法;
- 关于多态,以下关于多态的说法正确的是( ) A: 多态在每个对象调用方法时都会发生 B: 多态是由于子类里面定义了不同的函数而产生的 C: 多态的产生不需要条件 D: 当父类引用指向子类实例的时候,由于子类对父类的方法进行了重写,在父类引用调用相应的函数的时候表现出的不同称为多态。
内容
- 0
Java多态性的说法不正确的是( ) A: 在一个类的设计中,允许出现多个同名的成员方法,从而构成方法覆盖 B: 在子类的设计中,既可以通过方法重载也可以通过方法覆盖实现多态 C: 父类引用可以指向子类对象, 从而通过动态绑定实现多态 D: 构造方法是一 种特殊的方法,不存在多态特性
- 1
发生多态的条件是哪些() A: 类的继承或实现接口 B: 方法重载 C: 方法重写 D: 父类引用指向子类对象
- 2
C++中的虚函数的作用主要是实现了多态机制,即父类类别的指针(或者引用)指向其子类的实例,然后通过父类的指针(或者引用)调用实际子类的成员函数。多态机制可以简单地概括为“一个接口,多种方法”。( )
- 3
编程实现下列需求:1)编写Animal接口,接口中定义sleep()方法。2)Cat类和Pig类分别实现Animal接口的方法 3)编写测试类Example1对对象的类型进行转换,使Cat向上转型为Animal类型对象animal,然后再让animal转换为Cat类型。
- 4
编程练习:1)编写Animal接口,接口中定义sleep()方法。2)Cat类和Pig类分别实现Animal接口的方法3)编写测试类Example13对对象的类型进行转换,使Cat向上转型为Animal类型,然后再让Animal类型中的pig对象转换为Pig类型。