【java】 【接口】【继承】【抽象类】案例 运动员和教练

本文探讨了Java中的接口与抽象类的区别,强调接口作为特殊抽象类的特性,只包含抽象方法且不需构造器。同时阐述了单继承与多实现的概念,即一个类不能多继承,但可实现多个接口,接口之间也可继承。接口中的变量默认为public static final,方法默认为public abstract。

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

 【接口】可以认为是特殊的抽象类,但是接口只抽象方法,而抽象类抽象整个对象

 只有抽象方法,不需要构造方法

一个类不能继承自多个类,但是一个接口可以被多个类实现,接口之间也可继承

接口中的所有成员变量都默认是由public static final修饰的,接口中的所有方法都默认是由public abstract修饰的。(接口里面只有常量与抽象方法)

   

//我们有乒乓球运动员和篮球运动员,乒乓球教练和篮球教练,为了出国交流,跟乒乓球相关的运动员都要学习英语
//抽象类:人类类(子类:运动员类,教练类),运动员类(子类:乒乓球运动员,篮球运动员),教练类(子类:乒乓球教练,篮球教练)
// 接口:学习英语

package 接口实例;
//抽象人类类

public abstract class Human {
	private String name;
	private int age;
	
	//构造方法
	public Human() {}
	
	public Human(String name,int age) {
		this.setName(name);
		this.setAge(age);
	}

	//age与name的get,set方法
	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 接口实例;
//抽象教练类 继承自抽象人类类

public abstract class coach extends Human{
	public coach() {}

	public coach(String name,int age) {
		super(name,age);
	}
	
	public abstract void eat();
	
	public void study() {
		System.out.println("教练爱教运动员");		
	}

}

package 接口实例;
//抽象运动员类 继承自抽象人类类

public abstract class sportsman extends Human {
	public sportsman() {}

	public sportsman(String name,int age) {
		super(name,age);
	}
	
	public abstract void eat();
	
	public void study() {
		System.out.println("运动员爱学习");		
	}
}


package 接口实例;
//学英语接口

public interface English {
	
	public abstract void learn();
	
}


package 接口实例;
//乒乓球运动员类 继承抽象运动员类 使用接口学英语

public class Pingpangman extends sportsman implements English  {
	//重写抽象方法
	@Override
	public void eat() {
		System.out.println("乒乓球运动员要吃饭");
	}

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

	//构造方法
	public Pingpangman() {}
	
	public Pingpangman(String name,int age) {
		super(name,age);
	}

}


package 接口实例;
//乒乓球教练类 继承抽象教练类 使用接口学英语

public class Pingpangcoach extends coach implements English{

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

	@Override
	public void learn() {
		System.out.println("乒乓球教练要学习英语");
	}

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

}


package 接口实例;
//篮球运动员类 继承抽象运动员类

public class Basketballman extends sportsman {
    //重写抽象方法
	@Override
	public void eat() {
		System.out.println("篮球运动员要吃饭");	
	}
	
	//构造方法
    public Basketballman() {}
	
	public Basketballman(String name,int age) {
		super(name,age);
	}
}


package 接口实例;
//篮球教练类 继承抽象教练类

public class Basketballcoach extends coach  {
    //重写抽象方法
	@Override
	public void eat() {
		System.out.println("篮球教练要吃饭");	
	}

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

老坛酸菜吃鸭子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值