继承**动物继承案例****;接口**给动物都添加一个功能:跳高 Jump()​ 定义一个Jump接口,所有需要的这个功能的,都实现这个接口;多态的案例**饲养员案例描述多态的使用**

动物继承案例1

package com.baidu.demo05;

/**
 * 动物类
 *  由于不确切是什么动物,所有定义为抽象类
 *
 *  比如:抽象艺术
 *      抽象类不能直接实例化
 */
public abstract class Animal {
    private String name;

    public abstract void eat();

    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}
具体的动物(Cat)
package com.baidu.demo05;

/**
 * 具体的动物
 */
public class Cat extends Animal{//如果子类不是抽象类,必须要实现父类抽象类的方法

    @Override//重写
    public void eat() {
        System.out.println(super.getName()+"吃鱼");
    }


}

Dog

package com.baidu.demo05;

public class Dog extends Animal{

    @Override
    public void eat() {
        System.out.println(super.getName()+"啃骨头");

    }


}

测试

package com.baidu.demo05;

public class Test {
    public static void main(String[] args) {
       Cat cat = new Cat();
       cat.setName("猫仙");
       cat.eat();

       Dog dog = new Dog();
       dog.setName("大狗");
       dog.eat();
    }
}

运行

猫仙吃鱼
大狗啃骨头

Process finished with exit code 0

接口:为了弥补类只能单一继承的缺陷,后来演变为一种接口规范

给动物都添加一个功能:跳高 Jump()

定义一个Jump接口,所有需要的这个功能的,都实现这个接口

Jump

package com.baidu.demo05;

/**
 * 接口是更加抽象的抽象类
 *   接口不能实例化,用于作为一种约定(规范)
 *   
 *   接口内的方法都是抽象的方法
 */
public interface Jump {
    public void jump();
}

Cat

package com.baidu.demo05;

/**
 * 具体的动物
 */
public class Cat extends Animal implements Jump{//如果子类不是抽象类,必须要实现父类抽象类的方法

    @Override//重写
    public void eat() {
        System.out.println(super.getName()+"吃鱼");
    }

    @Override
    public void jump() {
        System.out.println(super.getName()+"像狗一样跳高");
    }
    //子类还可以扩展方法
    public void  chasesdog(){
        System.out.println(super.getName()+"撵狗");
    }
}

Dog

package com.baidu.demo05;

public class Dog extends Animal implements Jump{

    @Override
    public void eat() {
        System.out.println(super.getName()+"啃骨头");
    }
    @Override
    public void jump() {
        System.out.println(super.getName()+"像猫一样跳高");
    }
    //子类可以扩展方法
    public void catchMouse(){
        System.out.println(super.getName()+"捉老鼠");
    }

}

测试

package com.baidu.demo05;

public class Test {
    public static void main(String[] args) {
       Cat cat = new Cat();
       cat.setName("猫仙");
       cat.eat();
       cat.jump();
       cat.chasesdog();

       Dog dog = new Dog();
       dog.setName("大狗");
       dog.eat();
       dog.jump();
       dog.catchMouse();
    }
}

运行结果

猫仙吃鱼
猫仙像狗一样跳高
猫仙撵狗
大狗啃骨头
大狗像猫一样跳高
大狗捉老鼠

多态的案例

饲养员案例描述多态的使用:

package com.baidu.demo05;

public class Feeder {
    private String name;

//    public void feed(Dog dog){
//        System.out.println(this.name+"喂"+dog.getName());
//        dog.eat();
//    }
//    public void feed(Cat cat){
//        System.out.println(this.name+"喂"+cat.getName());
//        cat.eat();
//    }
public void feed(Animal animal){
        System.out.println(this.name+"喂"+animal.getName());
        animal.eat();
    }

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

测试

package com.baidu.demo05;

public class Test {
    public static void main(String[] args) {
       Cat cat = new Cat();
       cat.setName("猫仙");
//       cat.eat();
//       cat.jump();
//       cat.chasesdog();

       Dog dog = new Dog();
       dog.setName("大狗");
//       dog.eat();
//       dog.jump();
//       dog.catchMouse();

       //饲养员
       Feeder feeder = new Feeder();
       feeder.setName("小利");
       //要喂的动物
       feeder.feed(cat);
       feeder.feed(dog);
    }
}

运行结果

小利喂猫仙
猫仙吃鱼
小利喂大狗
大狗啃骨头

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答:好的,根据您的需求,我可以给您提供以下的代码实现: ``` // 定义跳高接口 interface JumpInterface { void jump(); } // 定义动物类抽象类,实现跳高接口 abstract class Animal implements JumpInterface { private String name; private int age; public Animal() {} public Animal(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 void eat() { System.out.println("Animal is eating."); } } // 定义猫类,继承动物类Animal class Cat extends Animal { public Cat() {} public Cat(String name, int age) { super(name, age); } @Override public void eat() { System.out.println("Cat is eating fish."); } @Override public void jump() { System.out.println("Cat is jumping high."); } } // 定义狗类,继承动物类Animal class Dog extends Animal { public Dog() {} public Dog(String name, int age) { super(name, age); } @Override public void eat() { System.out.println("Dog is eating meat."); } @Override public void jump() { System.out.println("Dog is jumping high."); } } ``` 这段代码中,我们定义了一个跳高接口 JumpInterface,其中有一个 jump() 方法。然后我们定义了一个动物类抽象类 Animal,它实现JumpInterface 接口,并有姓名和年龄两个成员变量,以及一个吃饭的方法 eat()。接着我们定义了猫类 Cat 和狗类 Dog,它们都继承了 Animal 类,并重写了 eat() 和 jump() 方法,其中猫会吃鱼,狗会吃肉,它们都能跳高。 如果您有任何问题,可以随时问我。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值