2012년 9월 29일 토요일

Overriding

Overriding(오버라이딩) : 상속 관계에 있는 두 클래스 중 하위 클래스에서 상위 클래스에 있는 클래스의 메소드를 재정의 하는 것. 이렇게 되면 하위 클래스의 메소드는 고유한 특성을 가짐
Overriding(오버라이딩)의 규칙
1. 상위 클래스의 메소드 이름과 일치해야 한다.
2. 상위 클래스의 메소드 매개변수의 개수와 데이터형이 일치해야 한다.
3. 접근 제한자느 범위가 같거나 더 넓은 범위의 접근 제한자로 선언해야 한다.
4. 상위 클래스의 메소드 리턴형과 일치해야 한다.
5. 상위 클래스에서 final 제한자로 선언된 메소드는 오버라이딩 할 수 없다.
6. 상위 클래스에서 static 제한자로 선언된 메소드를 오버라이딩 할 때는 static 제한자를 반드시 선언해야 한다.
7. 상위 클래스에서 private 접근 제한자로 선언된 메소드는 오버라이딩 할 수 없다.
8. 상위 클래스의 생성자는 상속되지 않기 때문에 오버라이딩 할 수 없다.
오버로딩과 오버라이딩 문제 푸는 순서
메소드의 이름 확인 -> 동일하지 않은 메소드의 이름은 선언가능
메소드의 매개변수의 타입 및 개수 확인 -> 타입이나 개수가 다를 경우 혹은 순서가 다를 경우 다른 메소드로 인식함으로써 오버로딩 가능. 번의 경우는 오버로딩 확인 하는 것임
메소드의 접근 제한자 확인, 리턴형 확인 -> , 의 경우 확인하여 메소드의 이름이 같고 메소드의 매개변수의 타입 및 개수가 같을 경우 오버라이딩한 것임. 오버라이딩의 경우 접근제한자의 경우 상위 클래스의 메소드의 접근제한자보다 크거나 같아야 함.(] void kim ( int k, int y){}의 경우 오버라이딩 할 때에 default형보다 큰 protected, public, default형으로 선언 가능). 리턴형의 경우 상위 클래스의 메소드와 같아야함.(] void kim(int k, int y){}의 경우 오버라이딩할 메소드의 리턴형은 반드시 void여야함)
메소드의 정의 부분 확인 -> , , 의 경우를 다 확인하면 메소드의 정의 부분을 확인해야함. 정의 부분은 상위 클래스의 메소드와 달라야 함

댓글 없음:

댓글 쓰기

국정원의 댓글 공작을 지탄합니다.

UPBIT is a South Korean company, and people died of suicide cause of coin investment.

 UPBIT is a South Korean company, and people died of suicide cause of coin. The company helps the people who control the market price manipu...