接口练习

来源:互联网 发布:au是什么软件 编辑:程序博客网 时间:2024/06/05 07:25

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

原创粉丝点击