새 프로젝트 만들기
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();
같은 이름의 메소드들이 오버로딩 됨
부모클래스로부터 상속받은 메소드를 자식 클래스에서 재정의 하는 것을 오버라이딩이라고 한다. 상속받은 메소드를 그대로 사용할 수도 있지만, 자식 클래스에서 상황에 맞게 변경해야하는 경우 오버라이딩할 필요가 생긴다.
@Override