ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

JAVA多态

2021-06-14 11:01:44  阅读:207  来源: 互联网

标签:kind JAVA 子类 多态 Animal 父类 方法 public


练习

一、选择   C

  1. 下列代码的运行结果为:
    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. 下面代码怎么修改可以编译时不报错(多选) A D
    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() 方法。

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();
	    }

	}

	
}

标签:kind,JAVA,子类,多态,Animal,父类,方法,public
来源: https://blog.csdn.net/weixin_56929924/article/details/117898232

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有