java基础day10

接口:接口就是一组功能(能力/规范)

特点:

实现多态

解决了继承的单一继承的问题

接口是特殊的抽象类

接口和类是完全不同的机制,接口可以多继承,类不可以

接口没有构造方法

有抽象方法 可以有常量,完整限定符public static final

特性:接口不可以被实例化;

实现类必须实现接口的所有方法;

案例

  • 定义Eatable接口,在接口中定义eat()方法,表示吃饭功能
  • 定义FlyingDiscCatchable接口,在接口中定义catchingFlyDisc()方法,表示接飞盘功能
  • 定义Swimmable接口,在接口中定义swim()方法,表示游泳功能
  • 定义抽象类Pet,包括宠物名称(name),健康值(health)和与主人亲密度(love)属性,并提供抽象方法print(),用来输出宠物信息
  • 定义狗类Dog,继承Pet类,实现Eatable和FlyingDiscCatchable接口,并重写或实现各个方法。
  • 定义企鹅类Pengui,继承Pet类,实现Eatable和Swimmable接口,并重写或实现各个方法。
  • 编写测试类,实现狗吃饭、企鹅游泳和狗玩接飞盘游戏的功能,并输出企鹅信息。
  • interface Eatable {
        void eat();
    }

    interface FlyingDiscCatchable {
        void catchingFlyDisc();
    }

    interface Swimmable {
        void swim();
    }

    abstract class Pet {
        String name;
        String health;
        String love;

        public String getName() {
            return name;
        }

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

        public String getHealth() {
            return health;
        }

        public void setHealth(String health) {
            this.health = health;
        }

        public String getLove() {
            return love;
        }

        public void setLove(String love) {
            this.love = love;
        }

        abstract void print();
    }

    class Dog extends Pet implements Eatable, Swimmable {

        @Override
        public void swim() {
            // TODO Auto-generated method stub
            System.out.println("狗游泳!");
        }

        @Override
        public void eat() {
            // TODO Auto-generated method stub
            System.out.println("狗吃饭!");
        }

        @Override
        void print() {
            // TODO Auto-generated method stub
            System.out.println("狗玩接飞盘!");
        }

    }

    class Pengui extends Pet implements Eatable, Swimmable {

        @Override
        public void swim() {
            // TODO Auto-generated method stub
            System.out.println("企鹅游泳!");
        }

        @Override
        public void eat() {
            // TODO Auto-generated method stub

        }

        @Override
        void print() {
            // TODO Auto-generated method stub
            System.out.println("我是一只肥企鹅我叫" + this.name + "\t" + "健康值为" + this.health + "\t" + "与主人的亲密度为" + this.love);

        }

    }

    public class Test {
        public static void main(String[] args) {
            Dog dog = new Dog();
            dog.eat();
            dog.print();
            Pengui pengui = new Pengui();
            pengui.swim();
            pengui.setName("大旭");
            pengui.setHealth("100%");
            pengui.setLove("100%");
            pengui.print();

        }
    }

猜你喜欢

转载自blog.csdn.net/Shi_Yuan_Csdn/article/details/81489672