抽象,接口

本文通过教练和运动员的案例,探讨编程中从抽象到具体的思维过程。分析了案例中的人类作为抽象类,包含吃饭的抽象方法和睡觉的具体方法。同时,涉及乒乓球运动员、篮球运动员、乒乓球教练和篮球教练等具体类,并指出在出国交流的情境下,相关人员需要学习英语,这可能代表一个接口需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

分析:从具体到抽象

编程:从抽象到具体

题目:教练和运动员案例

乒乓球运动员和篮球运动员

乒乓球教练和篮球教练

为了出国交流,和乒乓球相关的人员都需要学习英语。

请用所学知识,分析:这个案例中有哪些抽象类,哪些接口,哪些具体类。


人:吃饭();//抽象方法

        睡觉(){ }//具体方法

//定义一个说英语的接口
interface SpeakEnglish{
	//说英语
	public abstract void speak();
}

//定义人的抽象类
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 void sleep(){
		System.out.println("人都是要睡觉的");
	}
	//吃饭
	public abstract void eat();		
}

//定义运动员抽象类
abstract class Sporter extends Person{
	public Sporter() {}
	
	public Sporter(String name,int age){
		super(name,age);
	}
	
	//学习
	public abstract void eat();
}

//定义教练抽象类
abstract class Coach extends Person{
	public Coach() {}
	
	public Coach(String name,int age){
		super(name,age);
	}
	
	//教
	public abstract void teach();
}

//定义乒乓球运动员具体类
class PingPangPlayer extends Sporter implements SpeakEnglish{
	public PingPangPlayer() {}
	
	public PingPangPlayer(String name,int age){
		super(name,age);
	}
	
	//吃
	public void eat(){
		System.out.println("吃大白菜,喝小米粥");
	}
	//学习
	public void study(){
		System.out.println("乒乓球运动员学习如何发球和接球");
	}
	//说英语
	public void speak(){
		System.out.println("乒乓球运动员说英语");
	}
}

//定义篮球运动员具体类
class BasketballPlayer extends Sporter {
	public BasketballPlayer() {}
	
	public BasketballPlayer(String name,int age){
		super(name,age);
	}
	
	//吃
	public void eat(){
		System.out.println("吃牛肉,喝牛奶");
	}
	//学习
	public void study(){
		System.out.println("篮球运动员学习如何运球和投篮");
	}
}

//定义乒乓球教练具体类
class PingPangCoach extends Coach implements SpeakEnglish{
	public PingPangCoach() {}
	
	public PingPangCoach(String name,int age){
		super(name,age);
	}
	
	//吃
	public void eat(){
		System.out.println("乒乓球教练吃大白菜,喝大米粥");
	}
	//教
	public void teach(){
		System.out.println("乒乓球教练教如何发球和接球");
	}
	//说英语
	public void speak(){
		System.out.println("乒乓球教练说英语");
	}
}

//定义篮球教练具体类
class BasketballCoach extends Coach {
	public BasketballCoach() {}
	
	public BasketballCoach(String name,int age){
		super(name,age);
	}
	
	//吃
	public void eat(){
		System.out.println("篮球教练吃羊肉,喝牛奶");
	}
	//教
	public void teach(){
		System.out.println("篮球教练教如何运球和投篮");
	}
}
class InterfaceDemo{
	public static void main(String[] args){
		//测试运动员
		//乒乓球运动员
		PingPangPlayer ppp = new PingPangPlayer();
		ppp.setName("张继科");
		ppp.setAge(28);
		System.out.println(ppp.getName()+"---"+ppp.getAge());
		ppp.eat();
		ppp.sleep();
		ppp.study();
		ppp.speak();
		System.out.println("-----------------");
		
		//通过带参构造函数
		PingPangPlayer ppp1 = new PingPangPlayer("马龙",26);
		System.out.println(ppp1.getName()+"---"+ppp1.getAge());
		ppp1.eat();
		ppp1.sleep();
		ppp1.study();
		ppp1.speak();
		System.out.println("-----------------");
	}
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值