接口练习

这篇博客介绍了两个接口编程的课堂练习,第一个是动物声音模拟器,第二个涉及学校的管理,包括学生(Student)交学费,研究生(Graduate)领取科研津贴,以及学校(University)发放教师(Teacher)工资的场景。通过这两个实例,读者可以深入理解接口在实际编程中的应用。

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

课堂练习1:动物声音模拟器

public interface Animal {
	void cry();
	String getAnimalName() ;
}
public class Simulator {
	void playSound(Animal animal) {
		System.out.println(animal.getAnimalName()+"的叫声:");
		animal.cry();
	}
}
public class Dog implements Animal{
	public void cry() {
		System.out.println("汪汪汪");
	}
	 public String getAnimalName(){
		return "旺财";
	}
}
public class Cat implements Animal{
	public void cry() {
		System.out.println("喵喵喵");
	}
	public String getAnimalName(){
    	return "咪呜";
	}
}
public class Application {

	public static void main(String[] args) {
		Simulator simulator = new Simulator();
		simulator.playSound(new Dog());
		simulator.playSound(new Cat());
	}

}


课堂练习2:大学里的学生(Student)需要学费,而研究生(Graduate)作为学生比较特殊,除了需要交学费外,还可以获取一部分科研津贴,由学校University)统一发放。此外,学校还需要发放教师Teacher)的工资

public abstract class Student {
	int fee;
	String name;
	Student(String name){
		this.name = name; 
	}
	void setFee(int fee){
		this.fee = fee;
	}
	abstract int getFee();
}
public interface Salary {
	int getSalary();
}
public class Graduate extends Student implements Salary{
	int salary = 1500;
	Graduate(String name){
		super(name);
	}
	void setFee(int fee){
		this.fee = fee;
	}
	int getFee(){
		return fee;
	}
	public int getSalary(){
		System.out.println("研究生的工资:"+salary);
		return salary;
	}
	boolean isLoan(){
		if(salary < fee)
			return true;
		return false;
	}
}
public class Teacher implements Salary{
	int salary = 3000;
	String name;
	Teacher(String name){
		this.name = name;
	}
	public int getSalary(){
		System.out.println("教师的工资:"+salary);
		return salary;
	}
}
public class University {
	public void payOff(Salary s){
		s.getSalary();
	}
}
public class Test {

	public static void main(String[] args) {
		Graduate g = new Graduate("小亮");
		g.setFee(1000);
		
		University u = new University();
		u.payOff(g);
		System.out.println("是否需要贷款:"+g.isLoan());
		
		Teacher t = new Teacher("大王");
		u.payOff(t);
	}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值