super는 부모 객체의 레퍼런스 값을 가지고 있는 키워드이고, super() 부모 객체의 생성자 호출을 의미한다.
super는 자식 클레스의 생성자 함수 군현부의 맨 첫 줄에 작성되어야 한다. ( WHY? SUN 마음이겠지 )
* this와 this() 도 마찬가지로 this는 객체 레퍼런스, this()는 자신의 생성자 호출 키워드로 사용된다.
( this()역시 생성자 맨 첫 줄에 작성되어야 하기 때문에 super()와 동시에 사용 되는것은 불가능하다 )
2. 상속에서 메소드 오버라이딩
접근지정자 리턴형 메소드이름 ( argument ) throws 예외처리 {} 인 경우
접근지정자는 더 넓은 범위로만 변경가능, 리턴형, 메소드이름, argument는 변경 불가능 , 예외처리는 변경가능.
example) protected void setName(String name) throws Exception {}
=> pulblic or protected void setName(String name) throws IOException {} 과 같이 오버라이딩 가능.
3. final class ( ex. public final class class_name ) const 와 비슷한 의미.
final class 는 하위 클레스의 상속을 거부하는 최종 클레스의 의미를 가진다.
값을 단 한번만 초기화 할 수 있는 특징이 있다.
하위 클레스가 상속을 받아서 임의로 변경하는 것을 막는다.
맴버변수는 자동 초기화가 되지 않기 때문에 일반적으로 생성자에서 초기화를 시켜준다.
final 변수는 public final int ID_NUMBER = 1234; 와 같은 방법으로 선언하며, 초기화된 값을 변경시킬 수 없다.
final 변수는 모두 대문자로 표기하고 _ 를 이용해서 단어를 구분하는 것이 관례이다.
final 메소드는 public final void setName() 등으로 사용한다.
final 메소드는 오버라이딩이 불가능 하며, 보안성의 이유로 사용된다.
'Programming > JAVA' 카테고리의 다른 글
JAVA Wrapper 클레스 , static 키워드 (0) | 2010.02.19 |
---|---|
JAVA 다형성에 관해.. (0) | 2010.02.18 |
JAVA 배열 (0) | 2010.02.11 |
SPRING framework 에 대하여 .. (0) | 2010.02.11 |
JAVA 문법 Part 1 (0) | 2010.02.03 |