接口、抽象类、封装、继承、多态的综合案例

来源:互联网 发布:免费通达信软件 编辑:程序博客网 时间:2024/05/19 19:12
/*
乒乓球运动员和篮球运动员。
乒乓球教练和篮球教练。
为了出国交流,跟乒乓球相关的人员都需要学习英语。
*/


//接口
interface English {
public abstract void speakEnglish();//说英语
}


//抽象类 人
abstract class Person{
//成员变量
private String name;
private int age;
//构造方法
public Person(){}
public Person(String name, int age){
this.name = name;
this.age = age;
}
//提供setXxx getXxx
public void setName(String name){
this.name = name;
}
public String getName(){
return name;
}
public void setAge(int age){
this.age = age;
}
public int getAge(){
return age;
}
//抽象方法 和 其他方法
public abstract void eat();
}


//抽象类 运动员
abstract class Player extends Person{
//构造方法
public Player(){}
public Player(String name, int age){
super(name, age);
}
//抽象方法
public abstract void study();//学习
}


//抽象类 教练
abstract class Coacher extends Person{
//构造方法
public Coacher(){}
public Coacher(String name, int age){
super(name, age);
}
//抽象方法
public abstract void teach();//教课
}


//具体的类 乒乓球运动员
class PingPongPlayer extends Player implements English {
//构造方法
public PingPongPlayer(){}
public PingPongPlayer(String name, int age){
super(name, age);
}


//实现所有的抽象方法
public void eat(){
System.out.println("鸡蛋");
}


public void study(){
System.out.println("学习如何高效得分");
}
public void speakEnglish(){
System.out.println("Good Good Study, day day Up");
}
}


//具体的类 篮球运动员
class BasketBallPlayer extends Player {
//构造方法
public BasketBallPlayer(){}
public BasketBallPlayer(String name, int age){
super(name, age);
}


//实现所有的抽象方法
public void eat(){
System.out.println("辣椒");
}


public void study(){
System.out.println("学习如何扣篮");
}
}


//具体的类, 乒乓球教练
class PingPongCoacher extends Coacher implements English {
//构造方法
public PingPongCoacher(){}
public PingPongCoacher(String name, int age){
super(name, age);
}


//实现所有的抽象方法
public void eat(){
System.out.println("白菜");
}


public void teach(){
System.out.println("教发球,回球");
}
public void speakEnglish(){
System.out.println("Good Good Study, day day Up");
}
}


//具体的类, 篮球教练
class BasketBallCoacher extends Coacher {
//构造方法
public BasketBallCoacher(){}
public BasketBallCoacher(String name, int age){
super(name, age);
}


//实现所有的抽象方法
public void eat(){
System.out.println("萝卜");
}


public void teach(){
System.out.println("教运球 盖帽");
}
}


//测试
class Test 
{
public static void main(String[] args) 
{
//乒乓球运动员
PingPongPlayer ppp = new PingPongPlayer("张三", 29);
System.out.println(ppp.getName()+"..."+ppp.getAge());
ppp.eat();
ppp.study();
ppp.speakEnglish();
//篮球运动员
//乒乓球教练
PingPongCoacher ppc = new PingPongCoacher("师傅", 60);
System.out.println(ppc.getName()+"..."+ppc.getAge());
ppc.eat();
ppc.teach();
ppc.speakEnglish();
//篮球教练
}
}
0 0
原创粉丝点击