내가 개발해볼게!!

Do it! 자바 프로그래밍 입문 7일차 본문

Language/Java

Do it! 자바 프로그래밍 입문 7일차

보송송희 2022. 6. 24. 20:20

 

교재 맨앞쪽 진도표에 나와 있는 15일 코스로 공부하고 있습니다!!

Do it! 자바 프로그래밍 입문 7일차
09장 추상 클래스
- 09-1 추상 클래스
- 09-2 템플릿 메서드
- 09-3 템플릿 메서드 응용하기
- 09-4 final 예약어

  09장 추상 클래스

  • 추상 클래스에 대해 배웠습니다.

추상 클래스는 항상 추상 메서드를 포함하는데, 추상 메서드abstract 예약어를 사용하여 선언만 하고 구현하지는 않는 메서드입니다. 클래스명과 메서드명 앞에 abstract 예약어를 붙이면 추상 클래스, 추상 메서드가 되는데 이는 메서드의 구현을 하위 클래스에게 맡기겠다는 의미입니다. 하위 클래스는 상위 클래스에서 구현하지 않은 추상 메서드를 모두 구현해야 구체적인 클래스(concrete class)가 됩니다. 추상 클래스는 인스턴스로 생성할 수 없습니다. 

 

  • 템플릿 메서드에 대해 배웠습니다.

템플릿 메서드는 모든 하위 클래스가 공통적으로 수행할 로직의 흐름을 정의하는 역할을 합니다. final 예약어를 사용해 상위 클래스에 정의하고, 한 번 정의하면 하위 클래스에서 재정의할 수 없습니다. 

템플릿 메서드의 예시입니다. line 9에서 go() 메서드를 정의할 때 앞에 예약어 final을 붙였기 때문에 하위 클래스를 생성하더라도 go() 메서드를 재정의할 수 없습니다.

 

  • final 예약어에 대해 배웠습니다.

final 예약어는 변수, 메서드, 클래스에 사용할 수 있는데 final 변수는 상수를, final 메서드는 재정의할 수 없는 메서드를, final 클래스는 상속할 수 없는 클래스를 의미합니다. 상수 값을 정의할 때 public static final로 선언하면 그 값을 여러 외부 파일에서도 참조할 수 있습니다. 이때 '클래스 이름.변수 이름' 형태로 외부에서 참조할 수 있습니다.