상속
OOP에서 상속은 기존의 클래스를 확장하여 새로운
클래스를 이끌어내는 것을 의미합니다.
상속은 기존의 코드를 재사용함으로써 불필요한 코
드를 재작성하는 번거로움을 없앨 수 있고, 새로운
클래스를 만드는 시간과 노력을 줄일 수 있습니다
상속
- 단일상속만을 지원합니다.
- 어떤 클래스가 다른 클래스로부터 상속을 받아 만들어지면 새롭게 만들어진 클래스를 자식(child or sub)
클래스라고 부르며, 멤버변수와 메서드를 물려준 클래스는 부모(parent or super)클래스라고 부릅니다.
- 상속을 하면 부모클래스의 멤버변수와 메서드가 자식클래스에 상속이 됩니다. 그러나 부모클래스의 생성
자는 상속이 되지 않습니다.
- 상속을 사용하는 키워드는 extends 입니다.
- 자바의 모든 클래스는 Object 클래스를 상속받고 있습니다. Object클래스는 자바의 최상위 클래스입니다.
상속의 예제
Bad Case
개별 클래스들에 중복된 속성/기능을 포함
public class Employee {
String name;
int age;
String department;
String info() {
return "이름: " + name + ", 나이: " + age;
}
}
public class Teacher {
String name;
int age;
String subject;
String info() {
return "이름: " + name + ", 나이: " + age;
}
}
public class Student {
String name;
int age;
String studentId;
String info() {
return "이름: " + name + ", 나이: " + age;
}
}
상속의 예제
Good Case
중복된 기능을 빼내 새로운 클래스로 작성한 후 구체화
시킴
일반화 된 클래스는 부모클래스
구체화 된 클래스는 자식클래스
extends 키워드를 사용
public class Person {
String name;
int age;
String info() {
return "이름: " + name + ", 나이: " + age;
}
}
중복된 기능을 부모클래스로 묶는다
public class Employee extends Person {
String department;
}
public class Student extends Person {
String studentId;
}
public class Teacher extends Person {
String subject;
}
'자바' 카테고리의 다른 글
this와 super (0) | 2024.05.01 |
---|---|
메서드 재정의(Overriding) (0) | 2024.04.30 |
Garbage Collecting 과 패키지 (0) | 2024.04.30 |
객체와 클래스 (0) | 2024.04.30 |
메서드 (0) | 2024.04.30 |