Java 상속과 클래스 설계: 예제

Soozoo·2024년 6월 18일

JAVA

목록 보기
10/41

객체지향 프로그래밍의 중요한 개념 중 하나는 상속입니다. 상속을 사용하면 코드의 재사용성을 높이고 유지보수를 쉽게 할 수 있습니다. 이번 블로그에서는 Person 클래스를 상속받는 Student와 Worker 클래스를 구현하고, 이를 활용하는 방법을 예제로 설명하겠습니다.

super() : 부모 클래스의 생성자 함수

Code 예시:

"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, 인사
profile
넙-죽

0개의 댓글