[Java] final이란?
final 키워드는 entity를 딱 한번만 할당하는 것이다. 따라서 다시 할당하는 경우 error가 발생한다. final은 class, 메소드, 변수에 붙일 수 있고, 각 기능이 다르다.
1. final class
- class 앞에 final 키워드를 붙이면 해당 class는 상속되지 않는다.
public final class Fruit{ ... } public class Apple extends Fruit { ... } // error 발생
2. final 메소드
- 메서드 앞에 final 키워드를 붙이면 해당 메소드는 더 이상 Overriding 할 수 없다.
- 메소드 Overriding : 부모 class에서 이미 정의된 메소드를 자식 class에서 같은 이름을 가진 메소드로 재정의하는 것을 말한다.
public final class Parent{ protected final int getGrade() {...} } class Child extends Parent { protected int getGrade() {...} // error 발생 }
3. final 변수
- 변수 앞에 final 키워드를 붙이면 해당 변수는 변경될 수 없다. 따라서 반드시 초기값을 정해줘야한다. 이때 원시변수일 때와 참조변수일 때 차이가 있다.
- 원시 변수에 적용 시 : 해당 변수는 값을 변경할 수 없다.
- 참조 변수에 적용 시 : 참조 변수가 heap 내의 다른 객체를 가리키도록 변경할 수 없다.public final class Parent{ final int childNum = 4; //반드시 초기값 설정 void getBaby(){ childNum++; //error 발생 } }
[Reference]
Author And Source
이 문제에 관하여([Java] final이란?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@minmin_key/Java-final이란저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)