练习-Java继承和多态之综合练习

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

题目:

任务:按照动物、宠物、猫和蜘蛛的关系,通过编程实现各自的关系并声明自己的属性和方法。

编程要求

仔细阅读右侧编辑区内给出的代码框架及注释,在 Begin-End 中实现如下要求:

  • 动物类 Animal为抽象类,具有两个属性:种类和腿条数,并有 eat() 和 walk() 的方法;
  • 宠物 Pet 为接口,有三个功能:setName()、getName() 和 play();
  • 蜘蛛类 Spider 继承动物类,重写 eat() 方法;
  • 猫类 Cat 继承动物类并实现宠物接口,本身有一个属性:名称。

代码:

Cat.java文件

/**
 * 按照动物、宠物、猫和蜘蛛的关系,通过编程实现各自的关系并声明自己的属性和方法。
 */

// 请在下面的Begin-End之间按照注释中给出的提示编写正确的代码
/********** Begin **********/

// 创建Animal类,它是所有动物的抽象父类
abstract class Animal
{
    protected String type;
    protected int legs;
    protected Animal(String type,int legs)
    {
        this.type=type;
        this.legs=legs;
    }
    abstract public void eat();
    abstract public void walk()
    {
        System.out.println("用"+legs+"条腿走路");
    }
}
    // 声明一个受保护的字符串类型属性type,它记录动物的种类

    // 声明一个受保护的整数类型属性legs,它记录动物的腿的数目

    // 定义一个受保护的有参构造器,用来初始化type和legs属性


    // 声明抽象方法eat,无返回值

    // 声明具体方法walk来打印动物是如何行走的(包括腿的数目)。
    // 输出格式:用 xx 条腿走路


// 定义蜘蛛类 Spider继承Animal类
class Spider extends Animal
{
{
     Spider();
}

    // 定义默认构造器,它调用父类构造器来指明动物类别是spider,且所有蜘蛛都是8条腿。
public void eat()
{
    System.out.println("spider eating");
}
    // 实现eat方法,输出:spider eating
}
// 创建pet(宠物)接口
interface pet
{
   abstract String setName(String name);
   abstract void getName();
   abstract void play();
}
    // 提供setName(String name) 为该宠物命名

    // 提供getName() 返回该宠物的名字,返回类型为String

    // 提供 play()方法,无返回值


// 定义公开的猫类 Cat 继承动物类并实现宠物接口
public class Cat extends Animal 
{
    String name;
    public Cat(String name)
    {
        this.name=name;
    }
    public Cat( )
    {
        this.Cat(name);
    }
}
    // 定义一个name属性来存宠物的名字

    // 定义一个有参构造器,它使用String参数指定猫的名字
    // 该构造器必须调用超类构造器来指明动物种类是cat,且所有的猫都是四条腿

    // 另定义一个无参的构造器。该构造器调用前一个构造器(用this关键字)并传递一个空字符串作为参数

class Cat implements pet
{


    // 实现 Pet接口的方法
    // 设置猫的名称
   public  String setName(String name)
   {
       this.name=name;
   }
    // 获取猫的名称
   public void getName()
   {
       return name;
   }
    // 重写 Animal 类的play(),输出:Cat is playing
    public  void play()
    {
        System.out.println("Cat is playing");
    }
    public void eat()
    {
        System.out.println(getName()+"eating");
    }
    // 重写 Animal 类的eat(),输出:xx eating
    // xx 表示姓名
   }
/********** End **********/

Demo.java文件

public class Demo {
    public static void main(String[] args) {
        Spider spider = new Spider();
        spider.walk();
        Cat cat = new Cat("Kitty");
        System.out.println("小猫的名字叫:"+cat.getName());
        cat.walk();
        cat.play();
        cat.eat();

    }
}

总结

提示:这里对文章进行总结:
例如:以上就是今天要讲的内容,本文仅仅简单介绍了Java继承和多态之综合练习。

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷酷滴Q

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值