본문 바로가기
STUDY/JAVA

오버라이딩

by NOTEEE 2018. 1. 22.

오버라이딩(Overriding)

  • 부모Class에서 정의한 메서드를 자식Class에소 변경하는 것.
  • 한마디로 자식Class에 재정의하는 것.
예제를 보자
public class AClass {
    
    Integer i;
    Integer j;
    Integer k;
    
    static int TEMP = 10;
    
    public void setOprands(int i, int j) {
        this.i = i;
        this.j = j;
    }
    
    // 오버라이딩
    public void overRiding(){
        System.out.println("A 클래스 오버라이딩");
    }
    
}
 
public class BClass extends AClass{
    
    // 오버라이딩
    public void overRiding(){
        System.out.println("B 클래스 오버라이딩");
    }
    
}
 
public class JAVA_TEST {
 
    public static void main(String[] args) {
        
        AClass aClass = new AClass();
        BClass bClass = new BClass();
 
        aClass.overRiding();
        bClass.overRiding();
    }
 
}
cs


AClass(부모) overriding 메소드를 BClass(자식) overriding 메소드를 재정의 하고 있다.

오버라이딩을 하기 위해서는 조건이 있다.

  • 메소드의 이름
  • 메소드 매개변수의 숫자와 데이터 타입 그리고 순서
  • 메소드의 리턴타입

만약 똑같은 코드가 중복으로 오버라이딩이 된다면 제거를 해야한다.

예제를 보자

public class AClass {
    
    Integer i;
    Integer j;
    Integer k;
    
    static int TEMP = 10;
    
    public void setOprands(int i, int j) {
        this.i = i;
        this.j = j;
    }
    
    // 오버라이딩
    public void overRiding(){
        System.out.println("오버라이딩 호출");
    }
    
}
 
public class BClass extends AClass{
    
    // 오버라이딩
    public void overRiding(){
        super.overRiding();
    }
    
}
 
public class JAVA_TEST {
 
    public static void main(String[] args) {
        
        AClass aClass = new AClass();
        BClass bClass = new BClass();
 
        aClass.overRiding();
        bClass.overRiding();
    }
 
}
cs


AClass와 BClass의 overriding 메소드가 중복이라면 super를 사용하여 중복을 제거할 수 있다.

super를 사용함으로서 다시 부모클래스인 AClass의 overriding 메소드를 호출함으로 중복을 제거하였다.

'STUDY > JAVA' 카테고리의 다른 글

접근제어자2(Default 접근제어자와 Public 접근제어자)  (0) 2018.01.22
접근제어자1  (0) 2018.01.22
오버로딩  (0) 2018.01.22
상속이란?  (0) 2018.01.22
final의 의미  (0) 2018.01.22