자바 상속에 대해서 내가 제대로 완벽하게 하지 못한거같아서 블로그에서 요약 정리를 올리기로했당.
이제 블로그에 자바 기초 나 spring mvc 올리면서 정리하면서 공부하기!
-객체 지향에서 상속은 부모클래스에 만들어진 필드와 메소드를 자식 클래스가 물려받는것!즉, 상속 선언만 하면 자식클래스는 부모 클래스에 만들어진 필드와 메소드를 만들지 않고도 만든것과 같은 효과를 얻는다!
여기서 짚고 넘어가야할점 ->
상속은 클래스 사이의 상속이지 객체 사이의 상속이 아니라는점이다. 다시말해, 자식 객체는 자식 클래스와 부모 클래스에 만들어진 모든멤버를 가지고 생성된다.
- 상속은 코드중복을 제거하여 클래스 를 간결하게 구현할수있게한다.
why?) 코드를 물려 받기 때문에 멤버의 중복 작성 불필요- 클래스 관리가 용이 하다 -->클래스들의 계층적 분류
- 소프트웨어의 생산성 향상 --> 클래스 재사용 과 확장 용이
Ex)코드로 알아보기
public Class Person{
....
} -> 슈퍼 클래스
public Class Student extends Person{
//Person을 상속받는클래스 Student 선언
...
} -> 서브 클래스
public Class StudentWorker extendsStudent{
//Student를 상속받는 클래스 StudentWorker 선언
....
}
-> 위에 보시다시피 Student 클래스는 Person 클래스의 멤버를 물려 받으므로,Person 클래스에 선언된 필드나 메소드를 다시 반복하여 작성할 필요가 없고, 필드나 메소드를 추가 작성하면 된다. StudentWorker가 Student 를 상속받으면 Person클래스의 멤버도 자동 상속 받는다!
자바의 상속과 관련하여 몇가지 특징을 정리하면 다음과 같다
- 자바에서는 클래스의 다중상속을 지원하지않는다!
why?) 자바는 클래스를 여러개 상속받는 다중 상속(multiple inheritance)을 지원하지 않는다. 그러므로 extends 다음에는 클래스 이름을 하나만 지정할수있따아- 자바에서는 상속의 횟수에 제한을 두지 않는다.
- 자바에서 계층 구조의 최상위에 java.lang.Object클래스가 있다
--> 사용자가 만들든 자바패키지에서 제공하든 , 자바에서 모든 클래스는 Object 클래스를 자동으로 상속받도록 컴파일 된다. Object 를 상속받도록 선언하지 않더라도 마찬가지입니당
끝마치면서 , 다음 글 의 주제는 자바 상속인데 코드예제를 포함하여 제대로 정리하기!