JAVA多态
2021/6/14 12:21:26
本文主要是介绍JAVA多态,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
练习
一、选择 C
- 下列代码的运行结果为:
A. 我是动物 B. 编译错误 C. 我是动物 我是老虎 我是哈士奇 D. 我是动物 我是老虎 我是哈士奇
- 创建一个父类Animal,一个子类Cat,Animal three = new Cat();不是 C
A. 向上转型 B. 自动转型 C. 向下转型 D. 隐式转型
- 下列代码怎么修改可以使其成功运行: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()
- 下列关于instanceof说法不正确的是C
A. instanceof 的返回值为true和false B. instanceof可以用来判断对象是否可满足某个特定类型 C. 可以通过“A instanceof B"表示 A 类可以转型为B类 D. instanceof可放在if语句的条件表达式中
- 已知父类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)
- 在Java中,多态的实现不仅能减少编码的工作量,还能大大提高程序的可维护性及可扩展性,那么实现多态的步骤包括以下几个方面除了B
A. 子类重写父类的方法 B. 子类方法设置为final类型 C. 定义方法时,把父类类型作为参数类型;调用方法时,把父类或子类的对象作为参数传入方法 D. 运行时,根据实际创建的对象类型动态决定使用哪个方法
- 下面代码运行测试后,出现的结果是 B
A. 编译错误,错误位置在第一行 B. 编译错误,错误位置在第二行 C. 第一行和第二行都运行成功,输出结果为 儿子 女儿 D. 编译成功,但运行报错,错误位置在第二行
- 下面代码怎么修改可以编译时不报错(多选) A D
A. 在位置一处将SpeedBike类设为抽象类,同时将位置2处的speedup也设为抽象方法 B. 将位置一中的public改为final C. 将位置二中speedup()方法改为抽象方法 D. 将位置二中speedup()方法中加入方法的实现
- 下列选项中,关于Java的抽象类和抽象方法说法不正确的是B
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(); } } }
这篇关于JAVA多态的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27数据结构与算法面试题详解及练习
- 2024-12-27网络请求面试题详解与实战
- 2024-12-27数据结构和算法面试真题详解与实战教程
- 2024-12-27网络请求面试真题解析与实战教程
- 2024-12-27数据结构和算法大厂面试真题详解与实战指南
- 2024-12-27TS大厂面试真题解析与应对策略
- 2024-12-27TS大厂面试真题详解与解析
- 2024-12-27网站安全入门:如何识别和修复漏洞
- 2024-12-27SQL注入基础教程
- 2024-12-27初学者指南:理解和修复跨域漏洞