[JAVA] 상속, 클래스 상속(extends), 부모 생성자 호출(super(...)), final 클래스와 final 메소드

임유빈·2022년 7월 19일
0

JAVA

목록 보기
8/17
post-thumbnail

1. 상속

(1) 개념

자식(하위, 파생) 클래스가 부모(상위) 클래스의 멤버를 물려받는 것으로 자식이 부모를 선택하여 물려받는다.

(2) 조건과 사용

상속의 장점으로는 부모 클래스를 재사용하여 자식 클래스를 빠르게 개발할 수 있으며 중복코드를 줄일 수 있다. 또 유지 보수 편리성을 제공하며 객체 다형성 구현이 가능하다.

(3) 주의 사항

  • 부모 클래스의 private 접근 갖는 필드와 메소드는 제외한다.
  • 부모 클래스가 다른 패키지에 있을 경우, default 접근 같는 필드와 메소드도 제외한다.

2. 클래스 상속(extends)

(1) extends 개념

자식 클래스가 상속할 부모 클래스를 지정하는 키워드이다. 다른 언어와는 달리 자바는 다중상속을 허용하지 않는다. 그렇기 때문에 여러 개의 부모 클래스를 상속할 수 없다.

3. 부모 생성자 호출(super(...))

(1) (super(...)) 개념

super() 는 상속받은 부모 클래스의 변수명이나 클래스 변수를 참조하고, super() 는 부모 클래스 생성자를 호출한다.

(2) 자식 객체를 생성하였을 때의 메모리

자식 객체를 생성하면 부모 객체도 생성이 되는 걸까? 부모 없는 자식은 없다. 자식 객체 생성할 때는 부모 객체부터 생성 후 자식 객체 생성된다. 부모 생성자 호출 완료 후에 자식 생성자도 호출이 완료 된다.

4. final 클래스와 final 메소드

(1) final 키워드의 용도

  • final 필드: 수정 불가 필드
  • final 클래스: 부모로 사용 불가한 클래스
  • final 메소드: 자식이 재정의할 수 없는 메소드

(2) 상속할 수 없는 final 클래스


자식 클래스 만들지 못하도록 final 클래스로 생성

(3) 오버라이딩 불가한 final 메소드

  • 자식 클래스가 재정의 못하도록 부모 클래스의 메소드를 final로 생성

0개의 댓글