728x90
반응형

오버로딩(Overloading)

매개변수의 유형과 개수를 다르게 하여 같은 이름의 메서드를 여러 개 가지는 기법

 

예시)

public class Calculator {
	public int add(int a, int b){
    	return a+b;
    }
    
    public double add(double a, double b){
    	return a+b;
    }
    
    public String add(String a, String b){
    	return a+b;
    }
}

위와 같이 오버로딩을 사용하면, 매개변수의 유형을 다르게 하여 같은 이름의 메서드를 여러 개 가질 수 있게 한다.

 


오버라이딩(Overriding)

상위 클래스에서 정의한 일반 메서드의 구현을 하위 클래스에서 무시하고 재정의 할 수 있는 기법

 

예시)

class Animal {
    public void makeSound() {
        System.out.println("동물이 소리를 내고 있습니다.");
    }
}

class Dog extends Animal {
    @Override
    public void makeSound() {
        System.out.println("멍멍!");
    }
}

class Cat extends Animal {
    @Override
    public void makeSound() {
        System.out.println("야옹~");
    }
}

위와 같이 오버라이딩을 사용하면, 부모 클래스의 메서드를 자식 클래스에서 필요에 맞게 재정의가 가능하여 다형성을 활용할 수 있다.

 

728x90
반응형