课堂练习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);
}
}