11.1 자바 제어자(modifier) #2 (final, abstract)
<final>
- final은 1) 필드/지역변수 앞에 2) 메서드 앞에 3) 클래스 앞에 붙는다.
- final은 생성자 안에서라도 꼭 마지막으로 초기화를 해줘야한다. (3번)
- final이 필드이든 지역변수이든 지정된 값을 바꿀 수 없다.
- 모든 지역변수들은 stack 메모리에 생성
- 파이널 변수들은 생성될 때 파이널 영역에 복사되어 생성된다. (힙-필드이든 스택-지이든)
- 값을 바꿀 수 없는 이유는 값이 처음 들어간 순간에 (선언되는 순간) 1번 복사되기 때문에 그 순간 이후에는 값을 바꿀 수 없게 만드는 것. (원본을 바꿀 수 있다면 복사본은 쓸모없어지기 때문이다.)
- final 메서드는 마지막 메서드라는 의미이므로 override가 불가한 것이다.
- final 클래스는 마지막 클래스라는 의미로, 상속이 불가능하다.
<abstract>
- 추상클래스는 내부에 추상메서드를 하나 꼭 포함해야 한다. (필수)
- 장점은 오류 발생을 체크할 수 있다. => 오류가 발생하는 이유는 abstract 클래스를 사용하면 상속이 되어지는데, 새로운 메서드를 추가정의하면 abstract 메서드를 하나라도 가지고 있으면 abstract 클래스여야하는데 일반 class로 정의되었기 때문에 오류가 발생하는 것이다.
- 정확하게 오버라이딩해서 완성된 메서드를 완성된 메서드로 덮어섰을 때 제대로된 class를 생성할 수 있다.
https://www.youtube.com/@doit4312/playlists
Do it 자바 완전 정복 동영상 강의
Do it 자바 완전 정복 동영상 강의입니다.
www.youtube.com
위 강의를 듣고 작성하였습니다.
'Backend > Do it 자바 완전 정복 강의' 카테고리의 다른 글
12장 추상 클래스와 인터페이스 (0) | 2025.02.26 |
---|---|
10장 클래스의 상속과 다형성 (0) | 2025.01.17 |
09장 자바 제어자 - 접근 지정자와 static (0) | 2025.01.17 |
08장 클래스 외부 구성 요소 (0) | 2025.01.17 |
07장 클래스 내부 구성 요소 (0) | 2025.01.17 |