Java练习--接口(7)
来源:互联网 发布:如何用c语言编写小程序 编辑:程序博客网 时间:2024/05/17 04:06
1、如图所示:设计一个动物声音“模拟器”,希望模拟器可以模拟许多动物的叫声。
package bzu.animal;public class Simulator { public void playSound(Animal animal) { System.out.println("现在播放"+animal.getAnimalName()+"的声音:"); animal.cry(); }}package bzu.animal;public interface Animal { abstract void cry(); abstract String getAnimalName();}package bzu.animal;public class Dog implements Animal{ public void cry() { System.out.println("汪汪汪..."); } public String getAnimalName() { return "旺财"; }}package bzu.animal;public class Cat implements Animal{ public void cry() { System.out.println("喵喵喵..."); } public String getAnimalName() { return "猫咪"; }}package bzu.animal;public class Test { public static void main(String[] args) { Simulator simulator=new Simulator(); Dog dog=new Dog(); Cat cat=new Cat(); simulator.playSound(dog); simulator.playSound(cat); }}
2、大学里的学生(Student)需要交学费,而研究生(Graduate)作为学生比较特殊,除了需要交学费外,还可以获取一部分科研津贴,由学校(University)统一发放。此外,学校还需要发放教师(Teacher)的工资。
编写代码模拟上述场景:
1)设计抽象类Student:
属性包括姓名(name)、学费(fee);
方法包括:
- 构造方法Student(String name)
- 抽象方法void setFee(int fee)
- 抽象方法int getFee()
2) 定义一个接口Salary:包含一个方法int getSalary();
3) 定义一个研究生类Graduate,继承Student类且实现Salary接口:
新增属性:收入(salary)
方法包括:
- 构造方法Graduate(String name)
- 重写void setFee(int fee)
- 重写int getFee()
- 重写int getSalary(),研究生获得工资1500
- 新增方法boolean isLoan(),判断是否需要贷款(若收入小于学费则需贷款)
4) 定义一个教师类(Teacher):
属性包括:姓名(name)、收入(salary)
方法包括:
- 构造方法Teacher(String name)
- 重写int getSalary(),教师获得工资3000
5) 定义一个大学类(University),通过void payOff(Salary s)方法给研究生和教师发放并打印工资。
6)定义主类Test,主函数中至少包括以下代码:
1、Graduate.javapublic class Graduate extends Student implements Salary{ int salary; Graduate(String name) { super(name); salary=0; } public int getSalary() { salary=1500; System.out.println("研究生获得工资:"+salary); return salary; } public void setFee(int fee) { this.fee=fee; } public int getFee() { return fee; } public boolean isLoan(){ if(salary<fee) return true; return false; } }2、Salary.javapublic interface Salary { int getSalary();}3、Student.javapublic abstract class Student { String name; int fee; Student(String name){ this.name=name; fee=0; } public abstract void setFee(int fee); public abstract int getFee();}4、Teacher.javapublic class Teacher implements Salary { String name; int salary; Teacher(String name){ this.name=name; } public int getSalary(){ salary=3000; System.out.println("教师获得工资:"+salary); return salary; } }5、University.javapublic class University { void payOff(Salary s){ s.getSalary(); }}6、Test.javapublic 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); }}
- Java练习--接口(7)
- 接口强化练习(Java)
- java例程练习(Comparable接口)
- JAVA接口练习(含返回值)
- java笔记--day09--接口(四)练习
- 静态代理模式(java),接口练习
- Java接口练习
- java接口小练习
- java例程练习(接口interface)
- Java 接口编程题练习
- java类与接口练习
- java(Collection接口)练习06
- java(Collection接口)练习07
- Java开发练习4,接口
- Java 基础一些代码练习笔记(继承+接口+多态)
- Java Map接口练习(Map和List及排序)
- 继承,接口,多态练习java
- JAVA--第八周实验--接口的练习
- 根据四个点坐标排列出左上右上右下左下位置关系
- poj3267——the cow lexicon
- Tri-Alpha的新能源之梦:5毫秒的可控核聚变和5亿美元的豪赌
- 不但有黄金Logo OPPO R9巴萨定制版更有梅西签名保护套
- 三年亏三亿!打造“移动生态”能否挽救中搜网络?
- Java练习--接口(7)
- Nmon的安装及使用技巧
- 给自己的优盘做个保护,再也不怕病毒了!
- 奇葩说:VR因晕眩问题注定永远失败?
- 行业已成“红海”的今天,新兴无人机众筹项目都在做什么?
- Centos使用最小化安装后如何安装DeskTop
- 【LeetCode】Construct Binary Tree From Inorder And Postorder Traversal 中序遍历和后序遍历树构造二叉树
- 61. Rotate List
- C语言标准库函数qsort排序的介绍与使用