1. 상속이란 무엇인가
•
상속은 객체지향 프로그래밍의 핵심 개념 중 하나이다.
•
상속을 통해 다른 객체를 기반으로 하는 새로운 객체를 만들 수 있다.
•
상속은 객체가 다른 객체의 코드를 재사용할 수 있도록 허용하여 코드의 재사용성을 유지한다.
•
상속은 IS-A 관계라고 하며 부모-자녀 관계라고도 한다.
•
자바에서 상속은 extends 키워드로 구현할 수 있다.
•
상속된 객체는 슈퍼클래스라고 하고, 슈퍼클래스를 상속받은 객체는 서브클래스라고 한다.
•
자바에서는 여러 개의 클래스를 상속할 수 없다.
2. 정리
상속을 통해 다른 객체를 기반으로 만들 수 있다. 상속은 객체가 다른 객체의 코드를 재사용할 수 있도록 허용하여 코드의 재사용성을 유지하고 각 객체만의 로직도 추가할 수 있다. 자바에서 상속은 extends 키워드로 부모 클래스로부터 자식 클래스를 파생시켜 구현한다. 상속된 객체는 슈퍼클래스 또는 부모 클래스라고 하며 슈퍼클래스를 상속받은 객체는 서브클래스 또는 자식 클래스라고 한다. 자바에서는 여러 개의 클래스를 상속할 수 없다.
3. code
Employee
public class Employee {
private String name;
public Employee(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
Java
복사
Programmer
•
Programmer 클래스는 Employee 클래스를 상속받는다. 직원 중 개발자의 이름을 포함한다. 단, 개발자의 경우 속한 팀 이름도 있다.
public class Programmer extends Employee {
private String team;
public Programmer(String name, String team) {
super(name);
this.team = team;
}
public String getTeam() {
return team;
}
}
Java
복사
•
이제 Programmer 인스턴스를 생성하고 Employee 클래스에서 상속받은 getName 메서드와 Programmer 클래스에서 상속받은 getTeam 메서드를 호출하여 상속을 하면 다음과 같다.
public class Main {
public static void main(String[] args) {
Programmer p = new Programmer("Jonathan", "Seoul");
String name = p.getName();
String team = p.getTeam();
System.out.println(name + " is assigned to the " + team + " team");
}
}
== 출력 결과 ==
Jonathan is assigned to the Seoul team
Java
복사