JAVA接口案例(猫和狗、运动员和教练)

  1. 案例:猫和狗
    需求:对猫和狗进行训练,他们就可以跳高了,这里加入了跳高功能,请采用抽象类和接口来实现猫和狗的案例,并在测试类中进行测试。
    分析:
    (1)定义接口(Jumpping)
    成员方法:跳高();
    (2)定义动物类(Animal)
    成员变量:姓名、年龄;
    构造方法:无参、带参
    成员方法:get/set方法,吃饭();
    (3)定义猫类(Cat),继承动物类
    构造方法:无参、带参
    成员方法:重写吃饭(……),重写跳高(……)
    (4)定义狗类(Dog),继承动物类
    构造方法:无参、带参
    成员方法:重写吃饭(……),重写跳高(……)
    (5)定义测试类(AnimalDemo),写代码测试
    完整代码:
package intertext;

public interface Jumpping {
    public abstract void Jumpping();
}

package intertext;

public abstract class Animal {
    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 abstract void eat();
}

package intertext;

public class Cat extends Animal implements Jumpping {
    public Cat() {
    }

    public Cat(String name, int age) {
        super(name, age);
    }

    @Override
    public void Jumpping() {
        System.out.println("猫可以跳高了");
    }

    @Override
    public void eat() {
        System.out.println("猫吃鱼");
    }
}

package intertext;

public class Demo {
    public static void main(String[] args) {
        Jumpping j = new Cat();
        j.Jumpping();

        Animal a = new Cat();
        a.setName("mimi");
        a.setAge(5);
        System.out.println(a.getName()+","+a.getAge());
        a.eat();

        Animal a1 = new Cat("titi",6);
        System.out.println(a1.getName()+","+a1.getAge());
        a1.eat();

        Cat c = new Cat();
        c.setName("xixi");
        c.setAge(7);
        System.out.println(c.getName()+","+c.getAge());
        c.eat();
        c.Jumpping();
    }
}

运行结果:

猫可以跳高了
mimi,5
猫吃鱼
titi,6
猫吃鱼
xixi,7
猫吃鱼
猫可以跳高了
  1. 案例:运动员和教练
    需求:现在有乒乓球运动员和篮球运动员,乒乓球教练和篮球教练,为了出国交流,跟乒乓球相关的人员都需要学习英语,请用所学知识分析,这个案例中有哪些具体类,哪些抽象类,哪些接口,并用代码实现。
    分析:
    【从具体到抽象】
    在这里插入图片描述
    实现:
    【从抽象到具体】
    使用:
    【使用的是具体的类的对象】
    (1)定义说英语接口:
    成员方法:说英语();
    (2)定义抽象人类:
    成员变量:姓名,年龄;
    构造方法:无参,带参;
    成员方法:get/set方法,吃饭();
    (3)定义抽象教练类,继承人类:
    构造方法:无参,带参;
    成员方法:教();
    (4)定义抽象运动员类,继承人类:
    构造方法:无参,带参;
    成员方法:学习();
    (5)定义具体篮球教练类,继承教练类:
    构造方法:无参,带参;
    成员方法:重写吃饭()(……),重写教()(……)
    (6)定义具体乒乓球教练类,继承教练类:
    构造方法:无参,带参;
    成员方法:重写吃饭()(……),重写教()(……),重写说英语()(……)
    (7)定义具体篮球运动员类,继承运动员类:
    构造方法:无参,带参;
    成员方法:重写吃饭()(……),重写学习()(……)
    (8)定义具体乒乓球运动员类,继承运动员类:
    构造方法:无参,带参;
    成员方法:重写吃饭()(……),重写学习()(……),重写说英语()(……)
    (9)定义测试类,写代码测试。
    完整代码:
package qiu;

public interface speakE {
    void SpeakEnglish();
}

package qiu;

public abstract class Person {
    private String name;
    private int age;

    public Person() {
    }

    public Person(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();
}

package qiu;

public abstract class teacher extends Person {
    public teacher() {
    }

    public teacher(String name, int age) {
        super(name, age);
    }

    public abstract void teach();

}

package qiu;

public abstract class student extends Person{
    public student() {
    }

    public student(String name, int age) {
        super(name, age);
    }

    public abstract void study();
}

package qiu;

public class bsTeacher extends teacher {
    public bsTeacher() {
    }

    public bsTeacher(String name, int age) {
        super(name, age);
    }

    @Override
    public void teach() {
        System.out.println("篮球教练教学");
    }

    @Override
    public void eat() {
        System.out.println("篮球教练吃饭");
    }
}

package qiu;

public class ppTeacher extends teacher implements speakE {
    public ppTeacher() {
    }

    public ppTeacher(String name, int age) {
        super(name, age);
    }

    @Override
    public void eat() {
        System.out.println("乒乓球教练吃饭");
    }

    @Override
    public void teach() {
        System.out.println("乒乓球教练教学");
    }

    @Override
    public void SpeakEnglish() {
        System.out.println("乒乓球教练说英语");
    }
}

package qiu;

public class bsStudent extends student {
    public bsStudent() {
    }

    public bsStudent(String name, int age) {
        super(name, age);
    }

    @Override
    public void eat() {
        System.out.println("篮球运动员吃饭");
    }

    @Override
    public void study() {
        System.out.println("篮球运动员学习");
    }
}

package qiu;

public class ppStudent extends student implements speakE {
    public ppStudent() {
    }

    public ppStudent(String name, int age) {
        super(name, age);
    }

    @Override
    public void eat() {
        System.out.println("乒乓球运动员吃饭");
    }

    @Override
    public void study() {
        System.out.println("乒乓球运动员学习");
    }

    @Override
    public void SpeakEnglish() {
        System.out.println("乒乓球运动员说英语");
    }


}

package qiu;

public class Demo {
    public static void main(String[] args) {
        ppStudent ps = new ppStudent();
        ps.setName("Tom");
        ps.setAge(18);
        System.out.println(ps.getName()+","+ps.getAge());
        ps.eat();
        ps.study();
        ps.SpeakEnglish();


        ppStudent ps1 = new ppStudent("Bob",19);
        System.out.println(ps1.getName()+","+ps1.getAge());
        ps1.eat();
        ps1.study();
        ps1.SpeakEnglish();
    }
}

运行结果:

Tom,18
乒乓球运动员吃饭
乒乓球运动员学习
乒乓球运动员说英语
Bob,19
乒乓球运动员吃饭
乒乓球运动员学习
乒乓球运动员说英语
  • 2
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值