Java

KH 교육과정 6월 25일 상속 내용 정리

최종군 2024. 6. 26. 09:12

 

상속이란  : 

 

다른 클래스가 가지고 있는 멤버 (필드, 메소드)들을 새로 작성할 클래스에서 직접 만들지 않고 

상속을 받음으로써 새 클래스가 자신의 멤버처럼 사용할 수 있는 기능 

 

상속의 목적 : 클래스의 재사용, 연관된 일련의 클래스들에 대한 공통적인 규약 정의 

 

 

상속 장점 : 

 

1. 상속을 사용함으로써 보다 적은 양의 코드로 새로운 클래스 작성이 가능하다 

2. 코드를 공통적으로 관리하기 때문에 코드의 추가 및 변경의 용이하다

3. 코드의 중복을 제거하여 프로그램의 생산성과 유지보수에 크게 기여한다. 

 

모든 클래스는 Object클래스의 후손이다 

Object클래스가 제공하는 메소드를 오버라이딩하여 메소드 재구현 가능

 

java.lang.String 클래스의 equls()와 toString()

 

java.lang이란? 자바 프로그래밍 언어에서 가장 기본적인 클래스들을 포함하고 있는

패키지이다 가장 기본적인 클래스들을 제공하며 java.lang 패키지에 포함된 클래스들은

암묵적으로 별도의 임포트 구문 없이도 사용을 할 수 있다. 

 

Object : 모든 자바 클래스의 최상위 부모 클래스 모든 클래스는 Object 클래스의 상속을 받는다 

 

부모클래스의 생성자, 초기화 블록은 상속 안 된다. 

자식 클래스 생성 시 , 부모 클래스 생성자가 먼저 실행이 된다

자식 클래스 생성자 안에서 부모 클래스 생성자 호출을 명시하고 싶으면 super()를 활용한다 

 

 

부모의 private멤버는 상속은 되지만 직접 접근 불가

 

자식 객체 생성 시에 부모의 필드 값도 전달 받은 경우,

자식 생성자 안에서 부모의 private 필드에 직접 접근하여 대입이 불가능하다 

super() 이용하여 전달 받은 부모 필드 값을 부모 생성자 쪽으로 넘겨서 생성하거나 

setter, getter 메소드를 이용하여 접근한다.

 

 

 

상속 방법 : 

extends : 클래스간 상속 시에는 키워드를 사용한다 

 

 

자바에서는 단일상속만 지원한다. 

 

super()와 super. 

 

super() : 

-

부모 객체의 생성자를 호출하는 메소드로 기본적으로 후손 생성자에 부모 생성자 포함한다. 

super()는 첫 줄에 존재한다. 

부모 생성자가 가장 먼저 실행되어야 하기 때문에 명시적으로 작성 시에도 반드시 첫 줄에만 작성

 

super.

상속을 통한 자식 클래스 정의 시 해당 자식 클래스의 부모 객체를 가리키는 참조 변수 

자식 클래스 내에서 부모 클래스 객체에 접근하여 필드메소드 호출시 사용