JAVA 接口Interface练习②


/*
分析以下需求,并用代码实现
	1.定义动物类:
		属性:
			年龄
		行为:
			喝水,吃东西(吃什么不确定)
	2.定义游泳接口:
		行为:
			游泳方法
	3.定义狗类:
		行为:
			吃饭(啃骨头)和 游泳(狗刨)
	4.定义羊类:
		行为:
			吃饭(羊啃草)
	5.定义青蛙类:
		行为:
			吃饭(吃虫子)和 游泳(蛙泳)
	6.定义饲养员类:
		行为:
			饲养动物:包括吃饭和喝水
	7.定义测试类:

		创建饲养员对象,饲养员调用三次饲养方法:饲养狗,饲养羊,饲养青蛙

	要求:
		1.子类重写父类中的吃东西方法
		2.要求给狗和青蛙添加游泳的方法(实现游泳接口)
		3.饲养员类中定义一个方法,传入动物类对象(父类),
			调用吃饭方法,如果有游泳方法也需进行测试

		4.打印如下格式的结果:

			喝水
			狗啃骨头
			狗会狗刨游泳

			喝水
			青蛙吃小虫
			青蛙会蛙泳

			喝水
			羊啃草
 */
public class Demo {
    public static void main(String[] args) {
        Keeper k = new Keeper();
        Animal a = new Dog();
        k.method(a);
        Animal b = new Sheep();
        k.method(b);
        Animal c =new QingWa();
        k.method(c);
    }
}



public abstract class Animal {
    private int age;

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public Animal() {

    }

    public Animal(int age) {

        this.age = age;
    }
    public void drink(){
        System.out.println("喝水");
    }
    public  abstract void eat();
}


public class Dog extends Animal implements Swim {

    @Override
    public void eat() {
        System.out.println("狗啃骨头");
    }

    @Override
    public void swin() {
        System.out.println("狗刨式游泳");
    }
}


public class QingWa extends Animal implements Swim {
    @Override
    public void eat() {
        System.out.println("青蛙吃虫子");
    }

    @Override
    public void swin() {
        System.out.println("青蛙蛙泳");
    }
}



public class Sheep extends Animal{
    @Override
    public void eat() {
        System.out.println("羊吃草");
    }
}



public interface Swim {
    public abstract void swin();
}



public class Keeper {
    public void method(Animal animal) {
        if (animal instanceof Dog) {
            Dog d = (Dog) animal;
            d.eat();
            d.swin();
        }else if(animal instanceof Sheep){
            Sheep s = (Sheep) animal;
            s.eat();
        }else if (animal instanceof QingWa){
            QingWa q = (QingWa) animal;
            q.eat();
            q.swin();
        }


    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值