Java - final

2020. 8. 23. 18:18Java/Java

반응형

자바에서는 상수를 선언하기 위해 final을 사용한다. 변수등에 final이 붙게 된다면 더이상 수정이 불가능하다.

 

1. 변수 앞 final 

   => 변수에 새로운 값 대입 불가

 

2. 메서드앞에 final
 =>상속은 허용해주는데 특별히 중요한 메서드만 오버라이딩 금지 하기위한 목적

3. 클래스 앞에 final
    =>처음부터 상속자체가 불가->모든 메서드는 오버라이딩 불가

 

 


예제 소스

//3.final class 클래스명=>상속금지 클래스=>허용X=>중요한 클래스(System)
final class Parent{
	//1.final + 멤버변수 또는 지역변수=>상수화가 된다.(값이 고정)=>전부 대문자로 사용
	 final int COUNT=1;
	
	 //2.final + 메서드=>상속은 허용해주지만 오버라이딩(=재정의)만 금지시킬때 사용
	 final void sub() {
		 System.out.println("재정의 금지 메서드");
	 }
	 //메서드의 본래기능과 동떨어진 내용으로 변경되는 것을 막기위해서 사용하는 기법=>System클래스
	 final void sum(int a,int b) {
		 System.out.println("a+b=>"+(a+b));
	 }
}

public class FinalTest extends Parent {
      //int count=1;
	/*
	void sub() {
		 System.out.println("재정의 가능한 메서드");
	 }
	 
	 void sum(int a,int b){
	   System.out.println("test");
	 }
	 */
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Parent p=new Parent();
       // p.count=5;
        System.out.println("p.COUNT=>"+p.COUNT);
	}
}
반응형

'Java > Java' 카테고리의 다른 글

Java - 추상메서드, 인터페이스  (0) 2020.08.23
Java - static(정적)  (0) 2020.08.23
Java - 접근지정자  (0) 2020.08.23
Java - 상속(2) - super()  (0) 2020.08.23
Java - 상속(1)  (0) 2020.08.23