接口(使用Edible接口来明确一个对象是否是可食用的)

本文讨论了如何通过定义一个名为Edible的接口,来标识和区分程序中的对象是否可以食用。这个接口用于明确对象的可食用性,允许在代码中进行类型检查和相关的操作。
public class Test {
    public static void main(String[] args) {
        Object[] objects={new Chicken(),new Tiger(),new Orange()};//创建对象数组
        for (int i=0;i<objects.length;i++){
            if (objects[i]instanceof Edible)
                System.out.println(((Edible)objects[i]).howToEat());
            if (objects[i]instanceof Animal)
                System.out.println(((Animal)objects[i]).sound());
        }
    }
}

 interface Edible {//设计一个Edible接口来明确一个对象是否是可食用的
    public abstract String howToEat();//接口中方法格式固定:public abstract
}

abstract class Animal {//抽象类Animal
    public abstract String sound();//抽象方法(动物叫声)
}

class Chicken extends Animal implements Edible {//鸡肉类继承抽象的Animal类并实现Edible接口以表明小鸡是可食用的
    @Override
    public String sound() {
        return "Chicken:cock-a-doodle-doo";
    }//重写sound方法

    @Override
    public String howToEat() {
        return "Chicken:Fry it";
    }//重写howToEat方法
}
class Tiger extends Animal{//老虎类继承抽象的Animal类
    @Override
    public  String sound(){
        return "Tiger:RROOAARR";
    }//重写sound方法
}
abstract class Fruit implements Edible{//抽象类Fruit实现接口Edible,因为它不实现howToEat方法,所以Fruit类必须是抽象的

}
class Apple extends Fruit {//苹果类继承Fruit类(Fruit的子类必须实现howToEat方法)
    @Override
    public String howToEat(){
        return "Make apple cider";
    }//重写howToEat方法
}
class Orange extends Fruit{//橘子类继承水果类(Fruit的子类必须实现howToEat方法)
    @Override
    public String howToEat(){
        return "Orange:Make orange juice";
    }//重写howToEat方法
}

```java
"D:\java 12.0\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\lib\idea_rt.jar=61637:C:\Program Files\JetBrains\IntelliJ IDEA 2019.2\bin" -Dfile.encoding=UTF-8 -classpath D:\IDEA\untitled8\out\production\untitled8 Test
Chicken:Fry it
Chicken:cock-a-doodle-doo
Tiger:RROOAARR
Orange:Make orange juice

Process finished with exit code 0


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值