JAVA/chapter13_inheritance_annotation
Test . inheritance
GAWON
2023. 5. 26. 18:39
Q1. Test01.java 상속 관계로 구현하시오.
Student.java - 필드 : String name, int age, String School
- 메소드 : Constructor, output()
Worker.java - 필드 : String name, int age, String job
- 메소드 : Constructor, output()
→ 부모클래스는 알아서 만들어보자!(Human)
Q2. Test02.java 상속 관계로 구현하시오.
Notebook.java - 필드 : String model, int price, int battery
- 메소드 : Constructor, output()
Tablet.java - 필드 : String model, int price, int battery, String pen
- 메소드 : Constructor, output()
→ 부모클래스는 알아서 만들어보자!(Computer)
Q3. Test03.java 상속 관계로 구현하시오.
SalaryWorker.java - 필드 : String name, String dept, int salary
- 메소드 : Constructor, int pay(), output()
SalesWorker.java - 필드 : String name, String dept, int salary , double salesIncentive
- 메소드 : Constructor, int pay(), output(), int salesPay()
PartTimeWorker.java - 필드 : String name, String dept, int workTime, int payPerHour
- 메소드 : Constructor, int pay(), output()
→ 부모클래스는 알아서 만들어보자!(Employee)
SalaryWorker extends Employee
SalesWorker extends SalaryWorker
PartTimeWorker extends Employee
String name : 이름
String dept : 부서
int salary : 기본급(월급)
double salesIncentive : 판매 인센티브
int workTime : 근무시간
int payPerHour : 시급
package org.joonzis.test;
class Human{
String name;
int age;
public Human() {}
public Human(String name, int age) {
this.name = name;
this.age = age;
}
void output() {
System.out.println("이름 : " + name);
System.out.println("나이 : " + age);
}
}
class Student extends Human{
String school;
public Student() {}
public Student(String name, int age, String school) {
super(name, age);
this.school = school;
}
@Override
void output() {
super.output();
System.out.println("학교 : " + school);
}
}
class Worker{
}
public class Test01 {
public static void main(String[] args) {
Student stu = new Student("김씨", 20, "대학교");
stu.output();
}
}
package org.joonzis.test;
class Computer{
String model;
int price;
public Computer() {}
public Computer(String model, int price) {
this.model = model;
this.price = price;
}
void output() {
System.out.println("모델명 : " + model);
System.out.println("가격 : " + price);
}
}
class Notebook extends Computer{
int battery;
public Notebook() {}
public Notebook(String model, int price, int battery) {
super(model, price);
this.battery = battery;
}
@Override
void output() {
super.output();
System.out.println("배터리 파워 : " + battery);
}
}
class Tablet extends Notebook{
String pen;
public Tablet(String model, int price, int battery, String pen) {
super(model, price, battery);
this.pen = pen;
}
@Override
void output() {
super.output();
System.out.println("펜 정보 : " + pen);
}
}
public class Test02 {
public static void main(String[] args) {
Notebook notebook = new Notebook("MSI", 2000000, 65);
notebook.output();
System.out.println("--------------------");
Tablet tablet = new Tablet("갤럭시탭S8", 665000, 45, "그냥 펜");
tablet.output();
}
}
package org.joonzis.test;
class Employee{
String name, dept;
public Employee() {}
public Employee(String name, String dept) {
this.name = name;
this.dept = dept;
}
void output() {
System.out.println("이름 : " + name);
System.out.println("부서 : " + dept);
}
}
class SalaryWorker extends Employee{
int salary;
public SalaryWorker() {}
public SalaryWorker(String name, String dept, int salary) {
super(name, dept);
this.salary = salary;
}
int pay() {
return salary;
}
@Override
void output() {
super.output();
System.out.println("급여 : " + pay());
}
}
class SalesWorker extends SalaryWorker{
double salesIncentive;
public SalesWorker() {}
public SalesWorker(String name, String dept, int salary, double salesIncentive) {
super(name, dept, salary);
this.salesIncentive = salesIncentive;
}
int salesPay() { // 수당
return (int)(salary * salesIncentive);
}
@Override
int pay() {
return salary + salesPay(); // 기본급 + 수당
}
@Override
void output() {
super.output();
System.out.println("수당 : " + salesPay());
}
}
class PartTimeWorker extends Employee{
int workTime, payPerHour;
public PartTimeWorker() {}
public PartTimeWorker(String name, String dept, int workTime, int payPerHour) {
super(name, dept);
this.workTime = workTime;
this.payPerHour = payPerHour;
}
int pay() {
return workTime * payPerHour;
}
@Override
void output() {
super.output();
System.out.println("급여 : " + pay());
}
}
public class Test03 {
public static void main(String[] args) {
SalaryWorker sal = new SalaryWorker("김씨", "개발부", 1000);
sal.output();
System.out.println("--------------------");
SalesWorker sales = new SalesWorker("박씨", "영업부", 1000, 0.1);
sales.output();
System.out.println("--------------------");
PartTimeWorker part = new PartTimeWorker("이씨", "판매원", 276, 10000);
part.output();
}
}