編寫Java程序,模擬教練員和運動員出國比賽場景,其中運動員包括乒乓球運動員和籃球運動員。教練員包括乒乓球教練和籃球教練。爲了方便出國交流,根乒乓球相關的人員都需要學習英語。

需求說明:

模擬教練員和運動員出國比賽場景,其中運動員包括乒乓球運動員和籃球運動員。教練員包括乒乓球教練和籃球教練。爲了方便出國交流,根乒乓球相關的人員都需要學習英語。具體分析如下:

(1)共同的屬性:姓名、年齡。

(2)共同的方法:喫飯。其中喫飯的內容兩者不同,所以採用抽象的方法。

(3)不同的方法:隊員練習,教練教導,分別寫入隊員類和教練類。

(4)接口:學習英語。

(5)抽象類:人類、運動員類、教練類、後兩者繼承自人類。

(6)具體類:乒乓球隊員類、教練類和籃球隊員類、教練類;分別繼承遠動員或教練類,其中乒乓球有關的擴展學習英語接口

程序運行結果:

 

實現思路:

(1)定義英語接口English,該接口中定義抽象方法speak(),返回值類型是void。

(2)定義抽象類Person,包括兩個成員變量,分別是name 和 age。name是String 類型,age是int類型。定義兩個構造方法,一個有參,一個無參。再定義一個抽象方法,eat(),返回值類型是void。最後定義一個show()方法,返回值是void。該方法中顯示名稱和年齡。

(3)定義抽象遠動員類Player,它繼承了Person抽象類。定義兩個構造方法一個有參,一個無參注意應用super。再定義一個抽象方法student()。返回值是void。這是運動員類特有的方法。

(4)定義抽象教練類Coach,它繼承了Person抽象類。定義兩個構造方法一個有參,一個無參注意應用super。再定義一個抽象方法teacher()。返回值是void。這是運動員類特有的方法。

(5)定義乒乓球運動員類PingpangPlayer。它繼承Player,同時實現English接口。

(6)定義乒乓球教練類PingpangCoach。它繼承Coach,同時實現English接口。

(7)定義籃球運動員類BasketballPlayer。它繼承Player。

(8)定義籃球教練類BasketballCoach。它繼承Coach。

(9)定義測試類Test,在主方法中,分別實例化不同運動員和教練員並調用各自的方法。

 

實現代碼:

English 接口:

//定義一個說英語的接口
public interface English {
	//說英語
	void speak();
}

Person 抽象類:


public abstract class Persion {
	private String name;//姓名
	private int age;//年齡
	//無參構造
	public Persion() {
	}
	//有參構造
	public Persion(String name, int age) {
		this.name = name;
		this.age = age;
	}
	//喫飯的抽象方法
	public abstract void eat();
	//睡覺
	public void sleep() {
		System.out.println("人的要睡覺的");
	}
	//展示姓名和年齡
	public void show() {
		System.out.printf("姓名:%s\t年齡:%d",name,age);
		System.out.println();
	}
	
	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;
	}
	
}

Player 運動員類:



public abstract class Player extends Persion{
	//無參構造
	public Player() {
		super();
	}
	//有參構造方法
	public Player(String name,int age) {
		super();
	}
	//運動員學習的抽象類
	public abstract void student();
}

Coach 教練類:

public abstract class Coach extends Persion {
	//無參構造
	public Coach() {
		super();
	}
	//有參構造方法
	public Coach(String name,int age) {
		super();
	}
	//教練教授的學習方法
	public abstract void teacher();
}

PingpangPlayer 乒乓球運動員類:

public class PingpangPlayar extends Player implements English {
	
	@Override
	public void student() {
		System.out.println("乒乓球運動員要練習發球和接球技巧");
	}

	@Override
	public void eat() {
		System.out.println("乒乓運動員喫清淡的飯菜");
	}

	@Override
	public void speak() {
		System.out.println("乒乓球運動員要學習英語");
	}
	
}

PingpangCoach 乒乓球教練類:


public class PingpangCoach extends Coach implements English {

	@Override
	public void teacher() {
		System.out.println("乒乓球教練要教導隊員發球和接球技巧");
	}

	@Override
	public void eat() {
		System.out.println("乒乓球教練跟着隊員喫清淡的飯菜");
	}

	@Override
	public void speak() {
		System.out.println("乒乓球教練要學習英語");
	}

}

BasketballPlayer 籃球運動員類:

public class BasketballPlayer extends Player {

	@Override
	public void student() {
		System.out.println("籃球運動員要練習運球和投籃技巧");
	}

	@Override
	public void eat() {
		System.out.println("籃球運動員要喫高蛋白的飯菜,保持健壯的身體");
	}
	
}

BasketballCoach 籃球教練類:

public class BasketballCoach extends Coach {

	@Override
	public void teacher() {
		System.out.println("籃球教練要跟着隊員,要喫高蛋白的飯菜");
	}

	@Override
	public void eat() {
		System.out.println("籃球教練要教導隊員運球和投籃技巧");
	}

}

Test 測試類:


public class Test {

	public static void main(String[] args) {
		//實例化乒乓球運動員
		PingpangPlayar pp = new PingpangPlayar();
		pp.setName("馬明");
		pp.setAge(26);
		pp.show();
		pp.eat();
		pp.student();
		pp.speak();
		
		System.out.println("----------------------");
		//實例化乒乓球教練
		PingpangCoach pc = new PingpangCoach();
		pc.setName("姚梁");
		pc.setAge(38);
		pc.show();
		pc.eat();
		pc.teacher();
		pc.speak();
		
		System.out.println("----------------------");
		//實例化籃球運動員
		BasketballPlayer bp = new BasketballPlayer();
		bp.setName("劉國");
		bp.setAge(41);
		bp.show();
		bp.eat();
		bp.student();
		
		System.out.println("----------------------");
		//實例化籃球教練
		BasketballCoach bc = new BasketballCoach();
		bc.setName("傑克");
		bc.setAge(42);
		bc.show();
		bc.eat();
		bc.teacher();
	}

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章