猫狗案例------接口

本文通过一个猫狗案例详细讲解了Java接口的概念和使用。内容涵盖接口定义、接口实现、多态等方面,旨在帮助读者深入理解Java中接口的重要性及其在实际编程中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/*
        猫狗案例:加入跳高的功能
            分析:
                猫:
                    属性:姓名,年龄
                    行为:吃饭,睡觉
                狗:
                    属性:姓名,年龄
                    行为:吃饭,睡觉
            由于猫和狗存在共性,所以我们提取出来到一个新的类中
               动物:(抽象类)
                    属性:姓名,年龄
                    行为:吃饭(),睡觉()
               猫:继承自动物
               狗:继承自动物

           由于跳高是一个额外的功能,不是动物特有的,所以我们利用接口的方式去定义
               接口:
                    跳高
               部分的猫:实现接口
               部分的狗:实现接口

 */
abstract class Animal4{
    private String name;
    private int age;

    public Animal4() {
    }

    public Animal4(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

    //抽象方法吃饭,睡觉
    public abstract void eat();
    public abstract void sleep();
}

class Cat4 extends Animal4{
    public Cat4() {
    }

    public Cat4(String name, int age) {
        super(name, age);
    }

    @Override
    public void eat() {
        System.out.println("猫吃🐟");
    }

    @Override
    public void sleep() {
        System.out.println("猫蜷着睡");
    }
}

class Dog4 extends Animal4{

    public Dog4() {
    }

    public Dog4(String name, int age) {
        super(name, age);
    }

    @Override
    public void eat() {
        System.out.println("狗吃肉");
    }

    @Override
    public void sleep() {
        System.out.println("狗侧着睡");
    }
}

interface Jump{
    public abstract void jump();
}

//定义部分的会跳高的猫
class JumpCat extends Cat4 implements Jump{

    public JumpCat() {
    }

    public JumpCat(String name, int age) {
        super(name, age);
    }

    @Override
    public void jump() {
        System.out.println("猫跳高");
    }
}

//定义会跳高的狗
class JumpDog extends Dog4 implements Jump{

    public JumpDog() {
    }

    public JumpDog(String name, int age) {
        super(name, age);
    }

    @Override
    public void jump() {
        System.out.println("狗跳高");
    }
}



public class InterfaceDemo4 {
    public static void main(String[] args) {
        //创建一个不会跳高的狗
        Animal4 a1 = new Dog4("小白",2);
        a1.eat();
        a1.sleep();
        //创建一个会跳高的狗
        //抽象多态
        Dog4 d1 = new JumpDog("大白",3);
        d1.eat();
        d1.sleep();
//        d1.jump();
//        JumpDog jd = (JumpDog) d1;
        ((JumpDog) d1).jump();

        //接口多态
        Jump j1 = new JumpDog("小黑",4);
//        j1.eat();
//        j1.sleep();
        j1.jump();
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值