今日笔记

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

特点:

实现多态,解决了继承的单一继承的问题。

接口的使用案例:

  1. 对贯穿本书的案例电子宠物系统的类结构进行重构,要求如下:
  • 定义Eatable接口,在接口中定义eat()方法,表示吃饭功能
  • 定义FlyingDiscCatchable接口,在接口中定义catchingFlyDisc()方法,表示接飞盘功能
  • 定义Swimmable接口,在接口中定义swim()方法,表示游泳功能
  • 定义抽象类Pet,包括宠物名称(name),健康值(health)和与主人亲密度(love)属性,并提供抽象方法print(),用来输出宠物信息
  • 定义狗类Dog,继承Pet类,实现Eatable和FlyingDiscCatchable接口,并重写或实现各个方法。
  • 定义企鹅类Pengui,继承Pet类,实现Eatable和Swimmable接口,并重写或实现各个方法。
  • 编写测试类,实现狗吃饭、企鹅游泳和狗玩接飞盘游戏的功能,并输出企鹅信息。

代码如下:

package Demo08;

public class Dog extends Pet implements Eatable,FlyingDiscCatchable {
    public Dog(String name,int health,int love){
        super(name,health,love);
    }
    @Override
    public void eat() {
        System.out.println("吃骨头");
    }

    @Override
    public void catchingFlyDisc() {
        System.out.println("捡球");


    }

    @Override
    void print() {
        System.out.println("我是一只狗,名字是"+name+"健康值是"+health+"亲密度是"+love);

    }
}
package Demo08;

public interface Eatable {
    void eat();
}
package Demo08;

public interface FlyingDiscCatchable {
    void catchingFlyDisc();//接飞盘
}
package Demo08;

public class Penguin extends Pet implements Eatable,Swimmable {
    public Penguin(String name,int health,int love){
        super(name,health,love);
    }
    public void print()
    {
        System.out.println("我是一只企鹅,名字是"+name+"健康值是"+health+"亲密度是"+love);
    }
    public void eat(){
        System.out.println("吃鱼");
    }
    public void swim()
    {
        System.out.println("游泳");
    }

}
package Demo08;

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

    public Pet(String name, int health, int love) {
        this.name = name;
        this.health = health;
        this.love = love;


    }

    abstract void print();
}
package Demo08;

public interface Swimmable {
    void swim();//游泳
}
package Demo08;

public class Test {
    public static void main(String[] args) {
        Dog dog = new Dog("来福",70,80);
        dog.print();
        dog.eat();
        dog.catchingFlyDisc();
        Penguin penguin = new Penguin("嘻嘻",80,900);
        penguin.print();
        penguin.eat();
        penguin.swim();

    }

}

你可能感兴趣的:(今日笔记)