多态相关的题目
1. 问答题
1. 请用一句话描述出用代码怎样实现“多态”?
1. 继承或实现(二选一)
2. 方法重写
3. 父类引用指向子类对象
2. 请写出多态的好处和弊端。
好处:多态的好处是提高代码的灵活性、扩展性
弊端:无法访问子类中特有的方法
3. 请写出多态的向下转型的意义。
多态时,无法访问子类中特有的方法,要像使用子类中特有的方法,必须向下转型。
2. 编程题
- 有以下类定义:
- 动物类:
- 属性:名称、年龄、性别
- 行为:吃饭(非抽象)
- 猫类继承自动物
- 行为:捉老鼠
- 要求
- 请按要求在代码中定义上述类,并用多态的形式测试调用“吃饭”和“捉老鼠”的方法。
参考答案:
- 动物类
/**
* 动物
*/
public class Animal {
//成员变量
private String name; //名称
private int age; //年龄
private String gender; //性别
//空参构造
public Animal() {
}
//全参构造
public Animal(String name, int age, String gender) {
this.name = name;
this.age = age;
this.gender = gender;
}
//成员方法
public void eat() {
System.out.println("吃东西...");
}
//getter & setter 略
}
- 猫类
/**
* 猫 继承 动物类
*/
public class Cat extends Animal {
//特有的方法
public void catchMouse() {
System.out.println("抓老鼠...");
}
}
- 测试类
public class Test {
public static void main(String[] args) {
//测试多态
Animal animal = new Cat();
animal.eat(); //可以调用
//animal.catchMouse(); 无法调用子类中特有的方法
}
}