第十章 实现多态
主要知识点
1、多态的定义
2、实现多态的条件
学习目标
理解多态的含义,掌握多态的使用方法,所谓多态:多种状态。在面向对象语言中,接口中定义的抽象方法的多种不同实现方式即多态。
10.1 创建多态的条件
10.1.1 多态的定义
首先多态的作用是什么呢?
即一个引用变量到底会指向哪个类的实例对象。让程序可以选择多个运行状态,这就是多态性。
10.1.2 多态的条件
在代码中实现Java的多态必须遵守两个必要的条件:
(1)存在子类继承父类的关系(包括接口的实现);
(2)子类覆盖父类中的方法;
public abstract class Animal{ public abstract void say(); } public class Dog extends Animal{ public void say(){ System.out.println("汪汪汪"); } } public class Cat extends Animal{ public void say(){ System.out.println("喵喵喵"); } } public class Pig extends Animal{ public void say(){ System.out.println("哼哼哼"); } }
说明:
(1)覆盖方法的参数列表必须和被覆盖方法的参数列表完全相同,否则,不能成为其覆盖而是重载。
(2)覆盖方法的返回值必须与被覆盖方法的返回值一致。
(3)静态方法不能被覆盖为非静态的方法(编译会出错)。
10.2 多态的实现方法
10.2.1 子类向父类转型实现多态
首先想要理解多态性,要知道“向上转型”的含义。
Cat c = new Cat(); Animal a = new Cat();
Animal类型的引用是可以指向Cat类型的对象的。
10.2.2 类向接口转型实现多态
类实现接口,通常也意味着该类继承接口,类向接口转型实现多态也可以是面向对象语言无处不在的应用。
习题
一、简答题
1、什么是多态?类的多态是怎么实现的?
2、创建多态需要哪些条件?
3、类是怎么向接口转型实现多态的?
二、操作题
1、定义交通工具的抽象类Vehicle,包括方法run,然后定义三个子类Car(汽车)、Ship(船)、plane(飞机),分别实现Vehicle的run方法。
2、参考例10-2,应用Vehicle类与Car(汽车)、Ship(船)、plane(飞机)实现多态。
3、运行例10-3,分析在主类中应用多态的过程。
标签:面向对象编程,实现,多态,接口,Cat,---,Animal,public From: https://www.cnblogs.com/kuangmeng/p/18325368