본문 바로가기
Java

Java 메소드 오버라이딩

by Wisest 2015. 7. 15.

Method Overriding(메소드 오버라이딩)이란?

 

몇가지 전제 조건이 있다.

1. 상속이 전제 되어야 한다.

2. 메소드 이름이 반드시 같아야 한다.

3. 메소드의 리턴 타입이 반드시 같아야 한다. 단, 리턴 타입이 상속 관계일 때는 작은 타입으로 재정의 가능하다.

4. 메소드의 매개변수가 반드시 같아야 한다. ( 다를 경우 오버로딩으로 인식될 수 있다고 생각한다.)

5. 접근 지정자의 범위는 반드시 확대만 가능하다.

6. 예외 클래스의 범위는 축소만 가능하다.

7. static, final, private 지정자를 가진 메소드는 오버라이딩이 불가능하다.

 

class Parents{

public void print(){

System.out.println("나는 아버지다");

}

}

 

class Son extends Parents{
    public void print(){
        System.out.println("나는 자식이다.");
    }
}

 

public class Main {

public static void main(String[] args) {

 

Parents p = new Parents();

Son s = new Son();

Parents ps = new Son();

 

p.print();
s.print();
ps.print();

}

 

}

 

결과

나는 아버지다.    <--- p.print();
나는 자식이다.    <--- s.print();
나는 자식이다.    <--- ps.print();  해당 부분에서 메소드 오버라이딩이 일어 났다.

 

 

 

 


'Java' 카테고리의 다른 글

Java Interface  (2) 2015.07.16
Java 추상 클래스 (abstract class)  (0) 2015.07.16
Java 배열 선언  (0) 2015.07.13
JAVA 접근지정자(Access modifier)  (0) 2015.07.13
자바의 초기화 블록  (0) 2015.07.09