/* 猫狗案例:加入跳高的功能 分析: 猫: 属性:姓名,年龄 行为:吃饭,睡觉 狗: 属性:姓名,年龄 行为:吃饭,睡觉 由于猫和狗存在共性,所以我们提取出来到一个新的类中 动物:(抽象类) 属性:姓名,年龄 行为:吃饭(),睡觉() 猫:继承自动物 狗:继承自动物 由于跳高是一个额外的功能,不是动物特有的,所以我们利用接口的方式去定义 接口: 跳高 部分的猫:实现接口 部分的狗:实现接口 */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(); } }
猫狗案例------接口
最新推荐文章于 2023-01-10 13:53:59 发布