* 오버로딩
* 같은 클래스 내에서 메소드 명이 같고 다음이 적용될 때
1. 리턴타입이 달라도 되나 다음의 2~3번 사항 중 한가지가 같이 적용이 되어야 한다.
2. 매개변수의 데이터 타입이 다를 수 있다.
3. 매개변수의 갯수가 다를 수 있다.
* 오버라이딩
* 다른 클래스에게서 상속 받았을 때 메소드명이 같을때
1. 리턴타입이 다르면 안된다.
2. 매개변수의 수가 다르면 안된다.
3. 매개변수의 데이터 타입이 다르면 안된다.
4. 접근제한자는 다를 수 있다.(public, private 등)
class OverA {
void show(String str) {
System.out.println("상위클래스의 메소드 show(String str) 수행 " + str);
}
void show(String str, int intg){
System.out.println("오버로딩 구현 : " + str + " 정수 " + intg);
}
// 같은 클래스 내에 매개 변수의 수만 다른 같은 메소드명을 가지는 메소드가 2개 있다. 결론 오버로딩
// 파란색은 오버라이딩을 나타내는 부분이다.
}
class SubOverA extends OverA {
void show() {
System.out.println("하위클래스의 메소드 show() 수행");
}
void show(String str){
System.out.println("오버라이딩 구현" + str);
}
}
public class OverrideExam1 {
public static void main(String args[]) {
SubOverA over = new SubOverA();
over.show("IT KOREA");
over.show("IT KOREA", 24);
over.show();
}
}