객체지향 프로그래밍의 중요한 개념 중 하나는 상속입니다. 상속을 사용하면 코드의 재사용성을 높이고 유지보수를 쉽게 할 수 있습니다. 이번 블로그에서는 Person 클래스를 상속받는 Student와 Worker 클래스를 구현하고, 이를 활용하는 방법을 예제로 설명하겠습니다.
super() : 부모 클래스의 생성자 함수
"person.java"
package Quiz03;
public class Person { // extends Object {
private String name, address, phone;
private int age, height, weight;
// getter / setter methods
public String getName() { return name; }
public void setName(String name) { this.name = name; }
public String getAddress() { return address; }
public void setAddress(String address) { this.address = address; }
public String getPhone() { return phone; }
public void setPhone(String phone) { this.phone = phone; }
public int getAge() { return age; }
public void setAge(int age) { this.age = age; }
public int getHeight() { return height; }
public void setHeight(int height) { this.height = height; }
public int getWeight() { return weight; }
public void setWeight(int weight) { this.weight = weight; }
public void display() {
System.out.println(name + ", " + age);
}
}
"Student.java"
package Quiz03;
public class Student extends Person {
private String studentId;
private String major;
private String grade;
// Constructor
public Student(String name, int age, String studentId, String major, String grade) {
setName(name);
setAge(age);
this.studentId = studentId;
this.major = major;
this.grade = grade;
}
public String getStudentId() { return studentId; }
public void setStudentId(String studentId) { this.studentId = studentId; }
public String getMajor() { return major; }
public void setMajor(String major) { this.major = major; }
public String getGrade() { return grade; }
public void setGrade(String grade) { this.grade = grade; }
@Override
public void display() {
System.out.println(getName() + "," + getAge() + "," + studentId + "," + major + "," + grade);
}
}
"Worker.java"
package Quiz03;
public class Worker extends Person {
private String WorkerId;
private String position;
// Constructor
public Worker(String name, int age, String WorkerId, String position) {
setName(name);
setAge(age);
this.WorkerId = WorkerId;
this.position = position;
}
public String getWorkerId() { return WorkerId; }
public void setWorkerId(String WorkerId) { this.WorkerId = WorkerId; }
public String getPosition() { return position; }
public void setPosition(String position) { this.position = position; }
@Override
public void display() {
System.out.println(getName() + "," + getAge() + "," + WorkerId + "," + position);
}
}
"MainEntry.java"
package Quiz03;
import java.util.Scanner;
public class MainEntry {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
Student st = new Student("홍길동", 23, "S12345", "컴퓨터공학과", "A");
st.display();
Worker wr = new Worker("홍두깨", 35, "KO-23145", "인사");
wr.display();
}
}
홍길동, 23, S12345, 컴퓨터공학과, A
홍두깨, 35, KO-23145, 인사