接口大练习

本文展示了使用Java编程实现Animal抽象类,包括腿数属性和行走方法,并创建了其子类Spider,实现了eat方法。此外,还设计了Pet接口,包含getName、setName和play方法,Cat类实现了此接口并提供了具体的实现。同时,Fish类继承Animal,实现了Pet接口,重写了walk方法以表明鱼不能行走。
摘要由CSDN通过智能技术生成

1.练习-Animal类

  1. 创建Animal类,它是所有动物的抽象父类。
  2. 声明一个受保护的整数类型属性legs,它记录动物的腿的数目。
  3. 定义一个受保护的构造器,用来初始化legs属性。
  4. 声明抽象方法eat。
  5. 声明具体方法walk来打印动物是如何行走的(包括腿的数目)。
package jiekouhomework;

public abstract class Animal {
    protected int legs;
    protected Animal() {
    }


    protected Animal(int legs) {
        this.legs = legs;
    }
    public abstract void eat();

    public void walk(){
        System.out.println("用"+legs+"走路");

    }
}

练习Spider类

  1. Spider继承Animal类。
  2. 定义默认构造器,它调用父类构造器来指明所有蜘蛛都是8条腿。
  3. 实现eat方法
package jiekouhomework;

public class Spider extends Animal {
    public Spider(int legs) {
        super(legs);
    }

    @Override
    public void eat() {
        System.out.println("蜘蛛吃虫");
    }

    public static void main(String[] args) {
        Spider s=new Spider(8);
         s.walk();
    }

}

练习Pet接口
根据UML类创建pet(宠物)接口

  1. 提供getName() 返回该宠物的名字
  2. 提供setName(String name) 为该宠物命名
  3. 提供 play()方法
package jiekouhomework;

public class Cat extends Animal implements Pet{
    String name;



    public Cat(String name) {
        //调用超类构造器来指明所有的猫都是四条腿。
        super(4);
        this.name = name;


    }
    public Cat() {
        //该构造器调用前一个构造器(用this关键字)并传递一个空字符串作为参数
        this("");
        System.out.println("加菲猫");
    }
    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }

    @Override
    public String getName() {
        return null;
    }

    @Override
    public String setName(String name) {
        return null;
    }

    @Override
    public void play() {

    }

    public static void main(String[] args) {
        Cat cat=new Cat();
        cat.walk();
    }
}

练习fish类

  1. 创建Fish类,它继承Animal类
  2. 重写Animal的walk方法以表明鱼不能走且没有腿。
  3. 实现Pet接口
  4. 无参构造方法
  5. 提供一个private 的name属性
package jiekouhomework;

public class Fish extends Animal implements Pet {
    private  String name;

    public Fish() {
    }

    @Override
    public void walk(){
        System.out.println("鱼没有腿不能走");
    }
    @Override
    public void eat() {
        System.out.println("鱼吃鱼饵");
    }

    @Override
    public String getName() {
        return name;
    }

    @Override
    public void setName(String name) {
        this.name=name;
    }

    @Override
    public void play() {

    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值