Java实验6继承和多态

更新时间:2023-03-17 22:16:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验6 继承和多态

一、实验目的:

1、学习和使用类的继承。

2、掌握关键字super的意义和用法。 3、学习掌握类的方法覆盖技术。

4、学习掌握多态性和动态绑定的概念,学习使用多态进行程序设计。 二、实验任务:

1. 定义一个Person类,有姓名name和年龄age,定义一个派生类Student,继承自Person。

2. 在上面程序的基础上添加构造类的方法。

3. 实现一个Animal类,有方法eat,从Animal派生一个类Cat,有方法eat和catchMouse,从Animal派生一个类Dog,有方法eat和kanJia。请测试多态。

4.选做题:定义一个类Car,再派生出类Bus,都有方法Run,请实现多态性。

三、实验步骤:

3.参考代码

/*

对象的多态性:动物 x = new 猫(); 函数的多态性:函数重载、重写 1、多态的体现 */

class Animal { }

class Cat extends Animal {

public void eat() { }

System.out.println(\吃鱼\); void eat(){

System.out.print(\动物吃东西\); };

父类的引用指向了自己的子类对象 父类的引用也可以接收自己的对象

必须是类与类之间只有关系,要么继承或实现 通常还有一个前提,存在覆盖

多态的出现大大的提高了程序的扩展性 只能使用父类的引用访问父类的成员

2、多态的前提

3、多态的好处 4、多态的弊端

}

class Dog extends Animal { }

class TestDuoTai {

public static void main(String[] args) { }

public static void function(Animal a) { }

} a.eat();

// 用于子类型有限

// 或判断所属类型进而使用其特有方法 if (a instanceof Cat) { }

Cat c = (Cat) a; c.catchMouse(); Dog c = (Dog) a; c.kanJia();

Animal a = new Cat();// 向上转型 a.eat();

Cat c = (Cat) a;// 向下转型 c.catchMouse(); function(new Cat()); function(new Dog()); public void kanJia() { }

System.out.println(\看家\); public void eat() { }

System.out.println(\吃骨头\); public void catchMouse() { }

System.out.println(\抓老鼠\);

} else if (a instanceof Dog) {

四、实验难点: 多态性的实现。

本文来源:https://www.bwwdw.com/article/9b8f.html

Top