Computer Science

오버라이딩(Overriding)과 오버로딩(Overloading)의 차이

devel0per 2022. 12. 22. 14:00
오버로딩은 무엇일까요?

 

내 생각 : 오버로딩은 같은 이름의 메소드지만, 파라미터의 개수와 그 형태가 다른 것들을 정의하는 것을 오버로딩 이라고 합니다.

정답 : 같은 클래스 내에 여러 개의 같은 이름의 메소드를 정의하는 것 이때, 메서드의 이름은 같지만 매개변수의 개수나 타입이 달라야 한다.

 

public class Food{
    
    public void eat(int a){
        System.out.println(a + "명의 사람들이 먹고 있습니다.");
    }
    
    public void eat(int a, String b){
        System.out.println(a + "명의 사람들이" + b + "라는 피자를 먹고 있습니다.");
    }
    
}

 

 

오버라이딩은 무엇일까요?

 

내 생각 : 오버라이딩은 상위 클래스에 존재하는 메소드를 하위 클래스에서 재정의하는 것을 오버라이딩이라고 합니다.

정답 :  오버라이딩은 상속 관계에 있는 클래스 간의 같은 이름의 메서드를 정의하는 것이다. 상위 클래스에 존재하는 메서드를 하위 클래스에서 재정의 하는 것을 오버라이딩이라고 한다. 오버라이딩은 오버로딩과 다르게 메서드의 이름뿐만 아니라 파라미터의 개수와 타입 모두 동일해야 한다

 

public class Food{
        public void taste(int score){
            System.out.println(score + "만큼 맛있다");
        }
}

public class Pizza extends Food{
	public void taste(int score){
		System.out.println(score + "만큼 쫄깃하다");
	}
}

Food food = new Food();
food.taste(100);   // 100만큼 맛있다
    
Pizza pizza = new Pizza();
pizza.taste(90);    // 90만큼 쫄깃하다