一、选择 C
A. 我是动物 B. 编译错误 C. 我是动物 我是老虎 我是哈士奇 D. 我是动物 我是老虎 我是哈士奇
A. 向上转型 B. 自动转型 C. 向下转型 D. 隐式转型
A. 删除掉标注3位置的one.fly( ) B. 标注1的Animal one=new Bird()修改为Animal one=new Animal() C. 删除掉标注2位置的one.eat( ) D. 标注1的Animal one=new Bird()修改为Bird one=new Animal()
A. instanceof 的返回值为true和false B. instanceof可以用来判断对象是否可满足某个特定类型 C. 可以通过“A instanceof B"表示 A 类可以转型为B类 D. instanceof可放在if语句的条件表达式中
A. if (person1 instanceof Man) B. if (man1 instanceof Person) C. if (Person instanceof man1) D. if (Man instanceof person1)
A. 子类重写父类的方法 B. 子类方法设置为final类型 C. 定义方法时,把父类类型作为参数类型;调用方法时,把父类或子类的对象作为参数传入方法 D. 运行时,根据实际创建的对象类型动态决定使用哪个方法
A. 编译错误,错误位置在第一行 B. 编译错误,错误位置在第二行 C. 第一行和第二行都运行成功,输出结果为 儿子 女儿 D. 编译成功,但运行报错,错误位置在第二行
A. 在位置一处将SpeedBike类设为抽象类,同时将位置2处的speedup也设为抽象方法 B. 将位置一中的public改为final C. 将位置二中speedup()方法改为抽象方法 D. 将位置二中speedup()方法中加入方法的实现
A. 抽象类和抽象方法都通过abstract关键字来修饰 B. 抽象类中必须包含抽象方法 C. 抽象方法只有方法声明,没有方法实现 D. 子类如果不重写父类所有的抽象方法,则必须设置为抽象类
二、编程
应用继承和多态的思想,编写动物类,成员方法是动物叫声。写三个具体的类(猫、狗、羊),它们都是动物类的子类,并重写父类的成员方法。编写测试类,随机产生三种具体动物,调用叫声这个方法。
程序参考运行效果如图所示:
任务分析:
1. 定义一个父类Animal类
属性:kind(种类)
方法:创建带参(kind为参数)构造方法
创建cry():void方法
2. 编写三个具体的子类Cat类、Dog类、Sheep类
分别重写父类中的 cry() 方法,输出信息分别为
Cat类:小猫的叫声:喵喵喵~~~
Dog类:小狗的叫声:汪汪汪~~~
Sheep类:小羊的叫声:咩咩咩~~~
3. 编写测试类,首先生成长度为5的父类对象数组,然后通过循环依次向数组中存入数据,现设定存储规则为:
a) 每次随机产生一个0~2的正整数
b) 若数值为 0,则生成一个 Cat 类的对象,存入数组
c) 若数值为 1,则生成一个 Dog 类的对象,存入数组
d) 若数值为 2,则生成一个 Sheep 类的对象,存入数组
最后循环输出数组成员,并分别调用 cry() 方法。
public class Animal { private String kind;//种类 //get、set方法 public String getKind() { return kind; } public void setKind(String kind) { this.kind = kind; } //构造方法 public Animal(String kind) { this.setKind(kind); } //描述方法 public void cry() { System.out.println("小狗的叫声为:汪汪汪~~~"); } public Animal() { } } ```package com.dodoke.demo0724; public class Cat extends Animal { public Cat(){ } public Cat(String kind){ super(kind); } public void cry(){ System.out.println("小猫的叫声:喵喵喵~~~"); } } package com.dodoke.demo0724; public class Dog extends Animal{ public Dog(String kind){ super(kind); } public void cry(){ System.out.println("小狗的叫声为:喵喵喵~~~"); } public Dog(){ } } package com.dodoke.demo0724; public class Sheep extends Animal{ public Sheep(String kind){ super(kind); } public void cry(){ System.out.println("小羊的叫声:咩咩咩~~~"); } public Sheep(){ } } package com.dodoke.demo0724; public class Test { public Test(){ } public static void main(String[] args) { Animal animal[]=new Animal[5]; //产生随机数,随机产生三种具体子类的实例 for(int i=0;i<5;i++) { int temp=(int)(Math.random()*3); if(temp==0) { animal[i]=new Cat("Cat类:"); }else if(temp==1) { animal[i]=new Dog("Dog类:"); }else if(temp==2){ animal[i]=new Sheep("Sheep类:"); } } //循环输出,循环体中每个对象分别调用cry()方法。 for(int i=0;i<3;i++) { animal[i].cry(); } } }