JAVA接口案例(猫和狗、运动员和教练)
- 案例:猫和狗
需求:对猫和狗进行训练,他们就可以跳高了,这里加入了跳高功能,请采用抽象类和接口来实现猫和狗的案例,并在测试类中进行测试。
分析:
(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);}@Overridepublic void Jumpping() {System.out.println("猫可以跳高了");}@Overridepublic 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)定义说英语接口:
成员方法:说英语();
(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);}@Overridepublic void teach() {System.out.println("篮球教练教学");}@Overridepublic 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);}@Overridepublic void eat() {System.out.println("乒乓球教练吃饭");}@Overridepublic void teach() {System.out.println("乒乓球教练教学");}@Overridepublic void SpeakEnglish() {System.out.println("乒乓球教练说英语");}
}
package qiu;public class bsStudent extends student {public bsStudent() {}public bsStudent(String name, int age) {super(name, age);}@Overridepublic void eat() {System.out.println("篮球运动员吃饭");}@Overridepublic 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);}@Overridepublic void eat() {System.out.println("乒乓球运动员吃饭");}@Overridepublic void study() {System.out.println("乒乓球运动员学习");}@Overridepublic 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
乒乓球运动员吃饭
乒乓球运动员学习
乒乓球运动员说英语
JAVA接口案例(猫和狗、运动员和教练)相关推荐
- 174 多态案例/猫和狗
174 多态案例/猫和狗 思路 动物类,变量/姓名 年龄,构造方法/无参的 带参的,成员方法/getter setter 吃饭 猫类,继承动物类,构造方法/无参的 带参的,成员方法/重写吃饭方法 狗类 ...
- 178 抽象类案例/猫和狗
178 抽象类案例/猫和狗 思路 动物类,变量/姓名 年龄,构造方法/无参的 带参的,成员方法/getter setter 吃饭 猫类,继承动物类,构造方法/无参的 带参的,成员方法/重写吃饭方法 狗 ...
- 抽象类:案例:猫和狗
抽象类:案例:猫和狗 需求:请采用抽象类的思想实现猫和狗的案例,并在测试类中进行测试 1 定义动物类 package com.itheima_02; /* 抽象类 */ public abstract ...
- Java分别采用继承、多态、抽象类、接口实现猫和狗的入门案例
目录 采用继承的思想实现猫和狗的案例 采用多态的思想实现猫和狗的案例 采用抽象类的思想实现猫和狗的案例 采用接口的思想实现猫和狗的案例 采用继承的思想实现猫和狗的案例 分析: ①猫: 成员变量:姓名, ...
- 10-01 Java 类,抽象类,接口的综合小练习--运动员和教练
运动员和教练的案例分析 运动运和教练的案例 代码实现 /*教练和运动员案例乒乓球运动员和篮球运动员.乒乓球教练和篮球教练.为了出国交流,跟乒乓球相关的人员都需要学习英语.请用所学知识:分析,这个案例中 ...
- 【java基础】猫和狗(接口类)
step1:先定义一个跳高(接口) package jiekou;public interface Jumpping {public abstract void jump();} step2:再定义一 ...
- java 接口案例
这个是主程序 package demo;import java.util.ArrayList;public class SortUtil {public static void sort(ArrayL ...
- 【java基础】猫和狗(多态版)
父类:Animal package duotai;public abstract class Animal {private String name;private int age;public An ...
- 2022/10/26 OR 27 关于java的接口初识 猫狗接口/教练学员案例
接口的特点: 接口的关键字 public interface 接口名() 类实现接口的关键字 public class 类名 implements 接口名() 接口的实现参照多态:抽象类多态,接口多 ...
最新文章
- NMAP输出结果中CPE的含义
- [Swift]UIKit学习之UISegSmentedControl的用法
- map原理 java_RxJava的基本原理以及Map,flatMap的原理
- 异常处理机制——panic 和 recover
- mysql 2005开发版,SQL server 2019 开发版下载
- (建议收藏)前端面试必问的十六条HTTP网络知识体系
- MFC中的文件读写技术
- SQL Server 2022 DataSheet
- UI设计师应该知道的命名规范
- Web前端工作笔记013---拦截所有的ajax请求,设置出错信息
- HDU 1407 测试你是否和LTC水平一样高 枚举、二分、hash
- 【总结——HTTP协议】
- 统计机器学习导论第四章答案
- 搭档之家|立秋·暑去凉来 叶落知秋
- winehq-stable-5.0 Download For Mac 在Mac上运行exe文件
- 电影院同场不同价 你愿意为“黄金座位”买单吗
- java实现蒲丰投针求_蒲丰投针问题
- 笑傲江湖中的政治斗争
- 在css中引用特殊字体
- EDIUS里怎样快速切换插入和覆盖模式