معمولا شرکتها با توجه به نیروهایی در مقاطع و سطح های مختلفی که دارند فرمول و قاعده خاصی را در پرداخت حقوق در نظر میگیریند. ممکن هست یه کارمند عادی باشه و یا یک کارمند هفتگی حقوق بگیره و هم گروهی هم باشند که به صورت درصدی حقوق دریافت کنند.

این نمونه کدی که برای شما دوستان قرار میدم  و به زبان جاوا و استفاده از وراثت و چندریختی بوده مربوط به پرداخت حقوق کامندا در سه سطح پرداخت هفتگی، پرداخت درصدی و پرداخت ماهیانه ثابت و درصد فروش خواهد بود. امیدوارم برای دوستان مفید باشه.

کد مروبط به کلاس کارمند که به عنوان کلاس پرنت خواهد بود، به Abstract بودن کلاس توجه کنید.

public abstract class Karmand {
	
	private String name;
	private String lastName;
	private String kodmali;
	
	public Karmand(String n,String ln,String k){
		this.name=n;
		this.lastName=ln;
		this.kodmali=k;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getLastName() {
		return lastName;
	}

	public void setLastName(String lastName) {
		this.lastName = lastName;
	}

	public String getKodmali() {
		return kodmali;
	}

	public void setKodmali(String kodmali) {
		this.kodmali = kodmali;
	}

	@Override
	public String toString() {
		return String.format("%s%s\n kodmeli:%s",getName(),getLastName(),getKodmali() );
	}
	
	public abstract double mHoghogh();
	
}

کد مربوط به کلاس محاسبه حقوق هفتگی

public class Khaftegi extends Karmand {

	private double hhafteghi;
	public Khaftegi(String n, String ln, String k,double hh) {
		super(n, ln, k);
		setHhafteghi(hh);
		
	}

	public double getHhafteghi() {
		return hhafteghi;
	}

	public void setHhafteghi(double hh) {
		this.hhafteghi =hh<=0.0 ?0.0:hh;
	}

	@Override
	public String toString() {
		return String.format("moshakhasat karmand:%s\n hoghogh hafegi:%s\nmohaseba hoghogh:$%.2f\n",super.toString(),getHhafteghi(),mHoghogh() );
	}

	@Override
	public double mHoghogh() {
		
		return getHhafteghi();
	}
}

کد مربوط به کلاس محاسبه حقوق درصدی

public class Kdarsadi extends Karmand {

	private double hoghoghH;
	private double darsad;
	
	public Kdarsadi(String n, String ln, String k,double hh,double dar) {
		super(n, ln, k);
		setHoghoghH(hh);
		setDarsad(dar);
		
	}
	
	public double getHoghoghH() {
		return hoghoghH;
	}

	public void setHoghoghH(double hoghoghH) {
		this.hoghoghH = (hoghoghH<0.0)?0.0:hoghoghH;
	}

	public double getDarsad() {
		return darsad;
	}

	public void setDarsad(double darsad) {
		this.darsad = (darsad>0.0 && darsad<1.0) ? darsad:0.0;
	}

	@Override
	public double mHoghogh() {
		
		return getDarsad()*getHoghoghH();
	}

	@Override
	public String toString() {
		return String.format("moshakhasat karmand:%s\n%s:$%.2f\n%s:%.2f\n",super.toString(),"darsad",getDarsad(),"mohaseba hoghogh",mHoghogh());
	}
	
}

کد مربوط به کلاس محاسبه حقوق به صورت حقوق ثابت به اضافه درصد فروش

public class Kdarsad_paye extends Kdarsadi {

	private double hoghoghpaye;
	
	public Kdarsad_paye(String n, String ln, String k, double hh, double dar,double hp) {
		super(n, ln, k, hh, dar);
		setHoghoghpaye(hp);
	}
	
	public double getHoghoghpaye() {
		return hoghoghpaye;
	}

	public void setHoghoghpaye(double hoghoghpaye) {
		this.hoghoghpaye = (hoghoghpaye<0.0)? 0.0:hoghoghpaye;
	}
	
	@Override
	public double mHoghogh() {
		
		return getHoghoghpaye()+super.mHoghogh();
	}

	@Override
	public String toString() {
		return String.format("moshakhasat karmand:%s\n%s:$%.2f\n",super.toString(),"hoghogh paye",getHoghoghpaye());
	}
}

این هم کد کلاس main پروژه

public class Main_project {

	public static void main(String[] args) {
		
		Karmand k1=new Khaftegi("hasan", "moghadam", "1234568",50000);
		Karmand k2=new Ksaati("ali", "alavi", "78451256", 4500, 120);
		Karmand k3= new Kdarsadi("mahdi","babaye", " 45895612", 45000, 0.2);
		Karmand k4= new Kdarsad_paye("sayed", "rezaei", "12458956", 35000, 0.3, 120000);
		
		System.out.println(k1.toString());
		System.out.println(k2.toString());
		System.out.println(k3.toString());
		System.out.println(k4.toString());

	}

}