CS/IT

오버로딩과 오버라이딩

g_three 2023. 4. 28. 16:31


오버로딩 ( Over Loading )

오버로딩은 한 클래스 내에 여러 같은 이름의 메소드르 정의해, 프로그램의 가독성을 증가시키는 방법이다.

 

오버로딩의 특징

  • 메소드 이름이 같다
  • 파라미터 개수가 달라야한다
    • 파라미터 갯수가 같다면, 데이터 타입이 달라야한다. 

 

public class Overloading{

	void test(){
    	System.out.println(" 매개변수 없음 ");
    }
    
    void test(int a, int b){
    	System.out.println(" 매개변수 없음 " + a + b);
    }
    
    void test(string abc){
    	System.out.println(" 매개변수 없음 " + abc);
    }
}

이렇게 메소드의 이름을 같게하고 매개변수의 갯수를 다르게 혹은 타입을 다르게 선언하면 된다.

 

이것이 오버 로딩이다. 

 

 

 


오버라이딩 ( Over Riding )

오버라이딩은 상속관계인 클래스에서 부모 클래스에 선언된 메소드를 가져와 같은 이름의 메소드를 사용하는 것이다.

 

오버라이딩의 특징

  • 메소드의 이름이 같고 파라미터의 개수, 데이터 타입이 같아야한다.
  • 메소드의 리턴형도 같아야한다.
  • 상위 메소드와 동일하거나 내용이 추가되어야 한다. 

 

class Test {
    void testSomething() {
        System.out.println("just test");
    }
}

class Something extends Test {
    @Override
    void testSomething() {
        System.out.println("test Plus");
    }
}

public class Main {
    public static void main(String[] args) {
        test testA = new Test();
        test testB = new Something();
        
        testA.testSomething();  // "just test"
        testB.testSomething();  // "test Plus"
    }
}

Test 클래스가 있고 testSomething 메소드를 상속하여 사용하는 Something 클래스가 있다.

 

상속받아 사용할때 @Overriding 을 사용해 기존에 있던 데이터를 변환, 추가하여 사용할 수 있다. 

 

 

 

 


🔗 참고

https://brunch.co.kr/@kimkm4726/2

 

overloading vs. overriding

"오버로딩과 오버라이딩의 차이점을 설명해보세요." IT분야로 취업을 희망하는 대학생들은 반드시 넘겨야 할 전공면접(실무면접)에서 단골 문제중 하나로 알려져있다. 나는 학부 시절 전공 수

brunch.co.kr

https://berom.tistory.com/194

 

Overriding(재정의)

Overriding - 🐥 카카오 테크 캠퍼스 오버라이딩은 상위 클래스에 정의된 메서드의 구현 내용이 하위 클래스에서 구현할 내용과 맞지 않는 경우 하위 클래스에서 동일한 이름의 메서드를 재정의

berom.tistory.com