자바에서 클래스 상속과 일반화 관계를 활용하여 객체 지향 프로그래밍을 구현하는 방법에 대해 알아보겠습니다. 이를 통해 추상화 수준이 높은 클래스부터 구체적인 클래스까지 어떻게 모델링하는지 살펴보겠습니다.
클래스 상속과 일반화 관계
자바에서 클래스 상속은 부모 클래스로부터 필드와 메서드를 상속받아 새로운 클래스를 정의하는 메커니즘입니다. 이를 통해 부모 클래스의 특성을 자식 클래스에서 재사용하거나 확장할 수 있습니다. 일반화 관계는 객체 지향 프로그래밍(OOP)에서 중요한 개념 중 하나로, 클래스 간의 상속 관계를 나타냅니다.
Human 클래스
public class Human {
String name;
int age;
public Human() {
System.out.println("Human class default Constructor");
}
public Human(String str) {
System.out.println("Human class의 name을 받는 Constructor");
name = str;
}
public void setName(String str) {
name = str;
}
public void setAge(int b) {
age = b;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
}
- `Human` 클래스는 추상화 수준이 높은 일반적인 사항을 모델링합니다. 이름(`name`)과 나이(`age`)라는 속성을 가지고 있습니다.
Iam 클래스
public class Iam extends Human {
String job;
public Iam() {
System.out.println("Iam class default Constructor");
}
public void setJob(String str) {
job = str;
}
public String getJob() {
return job;
}
public static void main(String args[]) {
Iam iam = new Iam();
iam.setName("홍길동");
iam.setAge(100);
iam.setJob("개발자");
System.out.println("이름 : " + iam.getName());
System.out.println("나이 : " + iam.getAge());
System.out.println("직업 : " + iam.getJob());
}
}
- `Iam` 클래스는 `Human` 클래스를 상속하며, `job`라는 추가적인 속성을 가집니다. 이 클래스는 `Human` 클래스의 속성과 메서드를 공유하면서 `job`을 추가로 가집니다.
Son 클래스
public class Son extends Iam {
String school;
public Son() {
System.out.println("Son class default Constructor");
}
public void setSchool(String str) {
school = str;
}
public String getSchool() {
return school;
}
public static void main(String args[]) {
Son son = new Son();
son.setName("홍길동아들");
son.setAge(50);
son.setJob("개발자준비중");
son.setSchool("아이티교육센터");
System.out.println("이름 : " + son.getName());
System.out.println("나이 : " + son.getAge());
System.out.println("직업 : " + son.getJob());
System.out.println("학교 : " + son.getSchool());
}
}
- `Son` 클래스는 `Iam` 클래스를 상속하며, `school`이라는 추가적인 속성을 가집니다. 마찬가지로 `Human` 클래스의 속성과 메서드를 공유하면서 `job`과 `school`을 추가로 가집니다.
자바에서 클래스 상속과 일반화 관계를 활용하면 추상화 수준이 높은 일반적인 클래스에서부터 구체적인 클래스까지 다양한 클래스를 모델링할 수 있습니다. 이를 통해 객체 지향 프로그래밍의 핵심 개념 중 하나인 상속과 일반화를 이해하고 활용할 수 있습니다. 이러한 개념은 코드의 재사용성을 높이고 유지 보수성을 향상시키는 데 도움이 됩니다.
'Java > Java Advance' 카테고리의 다른 글
상속과 메서드 오버라이딩의 활용 (0) | 2023.10.15 |
---|---|
자바 생성자와 상속 관계의 이해 (0) | 2023.10.15 |
Java Constructor Overloading - 다양한 객체 초기화 방법 (0) | 2023.09.24 |
Java 생성자(Constructor)와 객체 초기화 (0) | 2023.09.24 |
Java Constructor(생성자)의 의미와 활용 예제 (0) | 2023.09.24 |