오버로딩(Overloading)
: 같은 이름의 메소드를 여러개 가지면서 매개변수의 유형과 개수를 다르게 하는 기술
오버라이딩(Overriding)
: 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의해서 사용
1. 오버로딩(Overloading)
class OverloadingTest{
// cat 인 메소드가 여러개지만 매개변수가 달라서, 매개변수 포함 여부에 따라 호출 가능
//이름이 cat인 메서드
void cat(){
System.out.println("매개변수 없음");
}
//매개변수 int형이 2개인 cat 메서드
void cat(int a, int b){
System.out.println("매개변수 :"+a+", "+b);
}
//매개변수 String형이 한 개인 cat 메서드
void cat(String c){
System.out.println("매개변수 : "+ c);
}
}
public class OverTest {
public static void main(String[] args) {
//OverloadingTest 객체 생성
OverloadingTest ot = new OverloadingTest();
//매개변수가 없는 cat() 호출
ot.cat();
//매개변수가 int형 두개인 cat() 호출
ot.cat(20, 80);
//매개변수가 String 한개인 cat() 호출
ot.cat("오버로딩 예제입니다.");
}
}
2. 오버라이딩(Overriding)
class Woman { // 부모클래스
public String name;
public int age;
// info 메서드
public void info() {
System.out.println("여자의 이름은 " + name + ", 나이는 " + age + "살입니다.");
}
}
class Job extends Woman { // Woman클래스(부모클래스)를 상속받음 :
String job;
public void info() {// 부모(Woman)클래스에 있는 info()메서드를 재정의
super.info();
System.out.println("여자의 직업은 " + job + "입니다.");
}
}
public class overriding {
public static void main(String[] args) {
// Job 객체 생성
Job job = new Job();
Woman woman = new Woman();
// 변수 설정
job.name = "유리";
job.age = 30;
job.job = "프로그래머";
// 호출
// 잡을 호출하면 잡의 확장인 우먼도 호출
job.info(); // 이놈 클래스의 에서 super.info(); 를 통해 이름과 나이를 넘겨주기때문에 얘만 출력
woman.info();
}
}
출처: https://private.tistory.com/25 [공부해서 남 주자]