final 역활.

DevTool/Java 2009. 6. 3. 17:50

package ch07;

public class Ch0703 extends Father
{
//father.java에서 final.. 사용시..
//class에 사용될 경우 : 하위클래스를 가질 수 없다.
//멤버함수에 사용할 경우 : 하위클래스에서 오버라이딩 불가.
//멤버/로컬변수 사용시 : 값을 변경 허락하지 않겠다는 의미.
//(완벽하지 않은상수 : new .. new.. 같지 않음 -> 해결방법 : static붙여서사용)
 
 //public int a;
 public final int a = 100;
 
 //상수의 형태를 취하려면 아래와 같이 static을 붙이면
 //인스턴스에 관계없이 참조가능한 상수가 된다.
 public final static double pi=3.14;
 public void work()
 {
  // TODO 자동 생성된 메소드 스텁
  super.work();
  //a=100; //public final int a = 100; 로 변경되지 안음
 }
 
}

****** Father.java ******
package ch07;

public /* final */ class Father //final 상속시키지 않겠다고 명시한것.
{
 public /* final */ void work()  // final 하위클래스에서 오버라이딩 허용안함.
 {
  System.out.println("아버지께서 일하셔"); //상속과 클래스 레퍼런스 관계 위해...  
 }
}

Posted by 말없제이
,