20210804) 생성자 - 메소드 오버로딩(Overloading)

새 프로젝트 만들기

Person

package method_Overloading;

public class Person {
	// 메소드 이름은 같지만 매개변수가 다를 때 오버로딩
	// 주의 : 오버라이딩이랑 다른 개념임 
	public void greet() {
		System.out.println("안녕?!");
	}
	
	public void greet(String name) {
		System.out.println("안녕?!" + name + "야");
	}
	
}

App

package method_Overloading;

public class App {

	public static void main(String[] args) {
		
		Person p1 = new Person();
		
		p1.greet();
		p1.greet("펭수");
	}

}

Person에 추가

	public void greet(int height) {
		if(height > 185) {
			System.out.println("우와 너 키 진짜 크다!");
		}
		System.out.println("안녕?!");
	}
	public void greet(String name, int height) {
			if(height > 185) {
				System.out.println("우와 너 키 진짜 크다!");
			}	
		System.out.println("안녕?! " + name);
	}

App

p1.greet();
		p1.greet("펭수");
		p1.greet(190);
		p1.greet("라이언", 199);
		System.out.println();

같은 이름의 메소드들이 오버로딩 됨

오버라이딩(Overriding) vs 오버로딩(Overloading)

부모클래스로부터 상속받은 메소드를 자식 클래스에서 재정의 하는 것을 오버라이딩이라고 한다. 상속받은 메소드를 그대로 사용할 수도 있지만, 자식 클래스에서 상황에 맞게 변경해야하는 경우 오버라이딩할 필요가 생긴다.

오버라이딩의 조건

오버라이딩은 부모 클래스의 메소드를 재정의하는 것이므로, 자식 클래스에서는 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야 한다.

@Override

오버로딩(Overloading)

자바의 한 클래스 내에 이미 사용하려는 이름과 같은 이름을 가진 메소드가 있더라도 매개변수의 개수 또는 타입이 다르면, 같은 이름을 사용해서 메소드를 정의할 수 있다.

오버로딩의 조건

메소드의 이름이 같고, 매개변수의 개수나 타입이 다를 때

좋은 웹페이지 즐겨찾기