Java基础编程练习

文章介绍了如何使用Java创建一个抽象类Animal,以及两个子类Dog和Cat,它们分别代表不同的动物类型,具有名字、颜色和特定属性。Dog类有智商属性和接飞盘功能,而Cat类有眼睛颜色属性和抓老鼠功能。TestAnimal类提供了自我介绍和活动方法,用于演示实例化后的动物行为。
摘要由CSDN通过智能技术生成

6-50 动物自我介绍分数 10

基于继承关系编写一个动物体系,具体的动物包含小狗和小猫。每只动物都有名字和颜色,都能够做自我介绍(introduce)。此外,小狗有智商属性(整数),能接飞盘(catchFrisbee(),方法体内输出一行“catch frisbee”即可),小猫有眼睛颜色属性,能抓老鼠(catchMouse(),方法体内输出一行“catch mouse”即可)。各种小动物自我介绍时均介绍自己的姓名和颜色,此外,小狗应介绍自己的智商,小猫应介绍自己的眼睛颜色。小狗介绍时输出”My name is xxx, my color is xxx, my IQ is xxx”, 小猫介绍时输出“My name is xxx, my color is xxx, my eyecolor is xxx”
构造类TestAnimal,提供静态函数introduce(Animal),对参数动物自我介绍。提供静态函数action(Animal),根据参数对象的实际类型进行活动,如果是小狗,则让其接飞盘,如果是小猫,则让其抓老鼠。
Main函数中,根据动物类型构造动物,并调用TestAnimal中的方法进行自我介绍(introduce)和活动(action)

函数接口定义:

public void introduce(); //自我介绍
public void action();      //动物的活动

裁判测试程序样例:

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        Scanner s = new Scanner(System.in);
        int i = s.nextInt();
        Animal a = null;
        if (i == 1) {
            a = new Cat(s.next(), s.next(), s.next());
        } else if (i == 2) {
            a = new Dog(s.next(), s.next(), s.nextInt());
        }
        TestAnimal.introduce(a);
        TestAnimal.action(a);
    }
}

/* 请在这里填写答案 */

输入描述:

动物类型 动物名称 动物颜色 动物其他属性 如
1 猫名称 猫颜色 猫眼睛颜色
2 狗名称 狗颜色 狗的智商

输出描述:

自我介绍
活动

输入样例:

1 Mikey white blue

输出样例:

My name is Mikey, my color is white, my eyecolor is blue
catch mouse

以下是答案


import java.util.Scanner;
public class Pta_6_50_2 {
	public static void main(String args[]) {
		Scanner s = new Scanner(System.in);
		int i = s.nextInt();
		Animal a = null;
		if(i == 1) {
			a = new Cat(s.next(),s.next(),s.next());
		}else if(i == 2) {
			a = new Dog(s.next(),s.next(),s.nextInt());
		}
		TestAnimal.introduce(a);
		TestAnimal.action(a);
	}
}
//以下是答案
//构造抽象类
abstract class Animal{
	Animal Cat;
	Animal Dog;
	public String name;					//好像抽象类定义中至少用protected
	public String color;
	Animal(String name,String color){
		this.name  = name;
		this.color = color;
	}
	public abstract void introduce();

    public abstract void action();

}
class Dog extends Animal{
	private int IQ;
	Dog(String name,String color,int IQ){
		super(name,color);
		this.IQ = IQ;
	}
	public void introduce() {
        System.out.println("My name is " + name + ", my color is " + color + ", my IQ is " + IQ);
    }
    public void action() {
        System.out.println("catch frisbee");
    }
}
class Cat extends Animal{
	private String eyescolor;
	Cat(String name,String color,String eyescolor){
		super(name,color);
		this.eyescolor = eyescolor;
	}
	public void introduce() {
		 System.out.println("My name is " + name + ", my color is " + color + ", my eyecolor is " + eyescolor);
	}
	 public void action() {
	        System.out.println("catch mouse");
	    }
}
class TestAnimal {
	public static void introduce(Animal a) {
		a.introduce();
	}
	public static void action(Animal a) {
		a.action();
	}
}
  • 9
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值