java--发工资

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

Student:

public abstract class Student {
	public String name;
	public int fee;
	public Student(String name){  //带参的构造方法
		this.name=name;
	}
	
	abstract void setFee(int fee);//两个抽象方法,继承的子类必须实现
	abstract int getFee();
}
Graduate:

public class Graduate extends Student implements Salary{//Graduate继承了Student类
	private static final boolean TRUE = true;//并且实现Salary接口类
	private static final boolean FLASE = false;
	int salary;
	Graduate(String name){  //带参的构造方法
		super("小红");  //子类必须先调用父类的构造方法,否则会出错
		super.name=name;
		//super(name);
	}
	void setFee(int fee){//用于修改研究生学费
		super.fee=fee;
	}
	int getFee(){//得到研究生的学费
		return fee;
	}
	public int getSalary(){ //得到研究生工资
		return 1500;
	}
	boolean isLoan(){   //用于判断研究生是否需要贷款
		if(getSalary()<getFee())
			return TRUE;
		else return FLASE;
	}
}
Teacher:

public class Teacher implements Salary{  //实现接口类
	String name;
	int salary;
	Teacher(String name){ //带参的构造方法
		this.name=name;
	}
	public int getSalary(){  //重写接口中的抽象方法,返回的是教师的工资
		return 3000;
	}
}
Universit:

public class Universit {
	void payOff(Salary s){  //大学给研究生和教师发工资的方法
		/*if(s instanceof Teacher){
			System.out.println((Teacher)s.name+"应支付工资:"+s.getSalary());
		}
		else if(s instanceof Graduate){
			System.out.println((Graduate)s.name+"应支付工资:"+s.getSalary());
		}*/
		
		System.out.println("应支付工资:"+s.getSalary());
	}

}
Salary:

public interface Salary {  //一个接口
	int getSalary(); //定义了一个方法,接口中的方法都是抽象方法,需要被重写
}
Test:

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

}
测试结果:








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值