我是靠谱客的博主 大气摩托,最近开发中收集的这篇文章主要介绍Java多态练习,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

练习
一、选择

1、下列代码的运行结果为:C
在这里插入图片描述

A. 我是动物
B. 编译错误
C. 我是动物
我是老虎
我是哈士奇
D. 我是动物 我是老虎 我是哈士奇
2、创建一个父类Animal,一个子类Cat,Animal three = new Cat();不是C
A. 向上转型
B. 自动转型
C. 向下转型
D. 隐式转型
3、下列代码怎么修改可以使其成功运行:A
在这里插入图片描述

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()
4、下列关于instanceof说法不正确的是C
A. instanceof 的返回值为true和false
B. instanceof可以用来判断对象是否可满足某个特定类型
C. 可以通过“A instanceof B"表示 A 类可以转型为B类
D. instanceof可放在if语句的条件表达式中
5、已知父类Person,子类Man。判断类Person的对象person1是否满足类Man的实例特征,正确的语句为A
在这里插入图片描述

A. if (person1 instanceof Man)
B. if (man1 instanceof Person)
C. if (Person instanceof man1)
D. if (Man instanceof person1)
6、在Java中,多态的实现不仅能减少编码的工作量,还能大大提高程序的可维护性及可扩展性,那么实现多态的步骤包括以下几个方面除了B
A. 子类重写父类的方法
B. 子类方法设置为final类型
C. 定义方法时,把父类类型作为参数类型;调用方法时,把父类或子类的对象作为参数传入方法
D. 运行时,根据实际创建的对象类型动态决定使用哪个方法
7、下面代码运行测试后,出现的结果是B
在这里插入图片描述

A. 编译错误,错误位置在第一行
B. 编译错误,错误位置在第二行
C. 第一行和第二行都运行成功,输出结果为
儿子
女儿
D. 编译成功,但运行报错,错误位置在第二行
8、下面代码怎么修改可以编译时不报错(多选)AD
在这里插入图片描述

A. 在位置一处将SpeedBike类设为抽象类,同时将位置2处的speedup也设为抽象方法
B. 将位置一中的public改为final
C. 将位置二中speedup()方法改为抽象方法
D. 将位置二中speedup()方法中加入方法的实现
9、下列选项中,关于Java的抽象类和抽象方法说法不正确的是B
A. 抽象类和抽象方法都通过abstract关键字来修饰
B. 抽象类中必须包含抽象方法
C. 抽象方法只有方法声明,没有方法实现
D. 子类如果不重写父类所有的抽象方法,则必须设置为抽象类
二、编程

1、应用继承和多态的思想,编写动物类,成员方法是动物叫声。写三个具体的类(猫、狗、羊),它们都是动物类的子类,并重写父类的成员方法。编写测试类,随机产生三种具体动物,调用叫声这个方法。
程序参考运行效果如图所示:
在这里插入图片描述

任务分析:

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() 方法。

package com.dodoke.animal.fatherclass;
/**
 *  定义一个父类Animal类
 * @author 
 *
 */
public class Animal {
	//属性:kind(种类)
	private String kind;
	//方法:创建带参(kind为参数)构造方法
	public Animal(String kind) {
		this.setKind(kind);
	}
	
	public Animal(){
		
	}
	//构建get/set方法
	public String getKind() {
		return kind;
	}
	public void setKind(String kind) {
		this.kind = kind;
	}
	// 创建cry():void方法
	public void cry(){
		System.out.println("动物叫声~~~");
	}
	
	
}

package com.dodoke.animal.sonclass;

import com.dodoke.animal.fatherclass.Animal;
/**
 * 子类Cat类
 * @author 
 *
 */
public class Cat extends Animal {
	//重写父类中的 cry() 方法
	public void cry(){
		System.out.println("小猫的叫声:喵喵喵~~~");
	}
}

package com.dodoke.animal.sonclass;

import com.dodoke.animal.fatherclass.Animal;
/**
 * Dog类
 * @author 
 *
 */
public class Dog extends Animal {
	//重写父类中的 cry() 方法
	public void cry(){
		System.out.println("小狗的叫声为:汪汪汪~~~");
	}
}

package com.dodoke.animal.sonclass;

import com.dodoke.animal.fatherclass.Animal;
/**
 * Sheep类
 * @author 
 *
 */
public class Sheep extends Animal {
	//重写父类中的 cry() 方法
	public void cry(){
		System.out.println("小羊的叫声:咩咩咩~~~");
	}
}

package com.dodoke.animal.test;

import com.dodoke.animal.fatherclass.Animal;
import com.dodoke.animal.sonclass.Cat;
import com.dodoke.animal.sonclass.Dog;
import com.dodoke.animal.sonclass.Sheep;
/**
 * 测试类
 * @author 
 *
 */
public class Test {
	public static void main(String[] args) {
		//首先生成长度为5的父类对象数组
		Animal ani[] = new Animal[5];
		//然后通过循环依次向数组中存入数据
		for(int i = 0; i < 5; i++) {
		int number = (int)(Math.random()*3);
		//每次随机产生一个0~2的正整数
			if(number == 0) {
				//若数值为 0,则生成一个 Cat 类的对象,存入数组
				ani[i] = new Cat();
			}else if(number == 1) {
				//若数值为 1,则生成一个 Dog 类的对象,存入数组
				ani[i] = new Dog();
			}else if(number == 2) {
				//若数值为 2,则生成一个 Sheep 类的对象,存入数组
				ani[i] = new Sheep();
			}
		}
		//最后循环输出数组成员,并分别调用 cry() 方法
		for(int i = 0; i < 5; i++) {
			ani[i].cry();
		}
	}	
	
}

小猫的叫声:喵喵喵~~~
小猫的叫声:喵喵喵~~~
小羊的叫声:咩咩咩~~~
小猫的叫声:喵喵喵~~~
小狗的叫声为:汪汪汪~~~

最后

以上就是大气摩托为你收集整理的Java多态练习的全部内容,希望文章能够帮你解决Java多态练习所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部