Programming/Java
[JAVA]OOP란? - 상속이란?
minux_s
2021. 5. 21. 10:46
728x90
흔히 말하는 재산 상속의 그 상속이 클래스에도 존재합니다.
<상속의 개념>
앞에서 만든 "학생"이라는 클래스로 "A"와 "B"라는 객체(인스턴스)를 만들었고, 이를 바로 클래스로부터 객체를 선언한다고 합니다.
그럼 여기서 클래스끼리의 공통점을 묶는다면??
앞에서의 "학생"이라는 클래스와 "교사'라는 클래스를 생각해보면 둘 다 "사람"이라는 공통점이 있습니다.
즉, "사람"이라는 클래스를 통해서 "학생","교사"라는 클래스를 정의할 수 있습니다.
정리하자면
상속이란: 클래스를 통해서 클래스를 정의
객체 선언이란: 클래스를 통해서 객체를 생성
이라는 차이가 있습니다.
<상속의 방법>
그럼 이제 상속에 대한 코드를 살펴보면
public class Example{
public static void main(String[] args){
Student a = new Student(17,"A");
Teacher b = new Teacher("B");
Student c = new Student(18,"C");
System.out.println(a.getName() + "의 번호" + a.getNumber());
System.out.println(b.getName() + "의 번호" + b.getNumber());
System.out.println(c.getName() + "의 번호" + c.getNumber());
}
}
class Student extends Human{
private int m_number;
public Student(int _num, String _str){
super(_str);
m_number = _num;
}
public int getNumber(){
return m_number;
}
}
class Teacher extends Human{
public Teacher(String _str){
super(_str);
}
public String getNumber(){
return "교사";
}
}
class Human{
private String name;
public Human(String _str){
name = _str;
}
public String getName(){
return name;
}
}
예시처럼 class 선언 옆에 "extends"라는 자바 키워드를 통해서 상속을 줄 수 있습니다.
상속의 장점으로는 상위클래스의 속성을 그대로 가져왔기 때문에 하위클래스는 그 속성을 그대로 사용할 수 있습니다.
위의 출력 부분 코드를 보시면 getName의 경우 Student, Teacher 클래스에 선언되어 있지 않지만, 상속받은 Human의 클래스 안에 있기 때문에 사용이 가능합니다.
728x90