[Java] 상속(Inheritance)
상속이란
상속(ingeritance)은 슈퍼(부모)클래스에서 서브(자식)클래스를 생성하는 방법이다.
기존 슈퍼(부모) 클래스의 매서드와 변수를 가져와 서브(자식)클래스에서 재사용하는 것을 의미한다.
하지만 메서드와 변수를 재사용하는 목적으로만 상속을 받는 것은 바람직한 목적은 아니며, 논리적을 타당할 때만 상속해야한다.
그 이유는 상속을 받으면 슈퍼(부모) 클래스에 있는 모든 내용이 서브(자식)클래스에 담기기 때문에 많은
메모리를 사용하게 되기 때문에 꼭 필요한 경우에 상속을 해야한다는 말이다.
class Super {
int age;
}
class Serve extends Super {
}
Parent 클래스에 age라는 변수를 멤버변수로 추가하면, 서브(자식)클래스는 슈퍼(부모)클래스의 모든 것을 상속받기 때문에 serve클래스는 자동적으로 age라는 멤버변수가 추가된 것과 같은 효과를 얻는다.
class Super {
int age;
}
class Serve extends Super {
void play(){
System.out.println(“서브클래스에 새로운 메서드를 추가하였습니다.”);
}
}
반대로 serve클레스에 새로운 메서드를 추가하게되면 super클래스는 아무런 영향도 받지 않는다.
-
서브(자식)클래스는 슈퍼(부모)클래스의 모든 메서드와 변수를 상속받는다.
-
서브(자식)클래스의 멤버 개수는 조상 클래스보다 항상 같거나 많다.
상속의 형태
object의 상속 – 모든 클래스의 슈퍼(부모)###
-
소스 –> 오버라이드로 들어가면 Object를 볼 수 있다. 그 이유는 모든 클래스는 Object를 상속받기 때문이다.
-
object클래스에 있는 메서드들을 통해서 클래스의 기본적인 행동을 정의할 수 있기 때문에 기본적으로 상속을 받는다.
public class A extendx Object{
}
위의 형태로 생성이 되는 것이지만 클래스를 생성하면 무조건 Object의 상속을 받기 때문에 생략도 가능하다.
최상위에 있는 클래스이기 때문에 모든클래스들은 Object클래스의 toString() 등 요소들을 사용할 수 있다.
댓글남기기