JAVA - 객체지향언어 추상클래스,메소드를 이용한 노동자 월급 구하기(2022-07-29)

2022. 7. 31. 19:253층 1구역 - 개발의 장/JAVA

Employee.java

package inheritance7;

public abstract class Employee {
	private String name;
	
	public Employee(String name) {
		this.name = name;
	}
	
	public String getName() {
		return name;
	}
	
	public void setName(String name) {
		this.name = name;
	}
	
//	public int getSalary() {
//		return 0;
//	}
	
	public abstract int getSalary();
}

 

PartTime.java

 

package inheritance7;

public class PartTime extends Employee{
	private int time;
	private int pay;
	
	// Alt  + Shift + s
	public PartTime(String name, int time, int pay) {
		super(name); 
		// super : 부모 인스턴스의 참조 값을 담고 있는 예약어
		// super() : 부모 생성자 호출.
		super.setName(name);
		this.time = time;
		this.pay = pay;
	}
	
	public int getSalary() {
		return time * pay;
	}
	
}

 

Permanent.java

 

package inheritance7;

public class Permanent extends Employee{
	private int salary;
	
	public Permanent(String name, int salary) {
		
		super(name); // 부모의 생성자 호출은 첫번째 줄 
		setName(name);
		this.salary = salary;
	}
	
	public int getSalary() {
		return salary;
	}
}

 

PermanentMain.java

 

package inheritance7;

import java.util.ArrayList;

public class PermanentMain {

	public static void main(String[] args) {
		ArrayList<Employee> emps = new ArrayList<>();
		
		emps.add(new Permanent("김변수", 3000000));
		emps.add(new Permanent("이상수", 4000000));
		emps.add(new Permanent("박참조", 5000000));
		emps.add(new PartTime("김파트", 160, 9500));
		emps.add(new PartTime("이파트", 160, 10000));
		emps.add(new PartTime("박파트", 160, 15000));
		
		for(Employee e : emps) {
			System.out.println("이름 : " + e.getName());
			System.out.println("급여 : " + e.getSalary()+"원");
		}
	}
}