본문 바로가기

java

오버로딩과 오버라이딩

overloading ? 

이름이 같은 메서드지만, 매개 변수 ( arguments ) 의 유형과 개수를 다르게 하여 다양한 유형의 메서드를 만드는 것을 overloading 한다라고 한다.

 

public class OverloadingClass {
	void method () {
    	System.out.println("매개변수 없음");
    }
    
    void method (int a, int b) {
    	System.out.printf("매개변수 %d %d 있음\n", a , b);
    }
    
    void method (double d) {
    	System.out.println("매개변수 " + d);
    }
    
    public static void main(String[] args) {
    	OverloadingClass overload = new OverloadingClass();
    	
    	overload.method(); //매개변수 없음
    	overload.method(1,2); // 매개변수 1 2 있음
    	overload.method(3.3); // 매개변수3.3
    }
}

 

overriding ?

상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의 해서 사용한다.

// SuperClass.java
public class SuperClass {
	public String name;
	public int age;
	
	public void print() {
		System.out.println("사원의 이름은 " + this.name + "이고, 나이는" + this.age + "입니다.");
	}
}

// SubClass.java

public class SubClass extends SuperClass {
	String jobOfManager;
	// 오버라이딩 해준다. 
	public void print() {
		super.print();
		System.out.println("관리자 : " + jobOfManager); // 추가해준 부분 ( 재정의 )
	}
}

// ClassTest.java

public class ClassTest {
	public static void main (String[] args) {
		SubClass lee = new SubClass();
		
		lee.name = "김길동";
		lee.age = 25;
		lee.jobOfManager = "홍길동";
		
		lee.print(); // 사원의 이름은 김길동이고, 나이는25입니다.
						// 관리자 : 김길동

	}
}



'java' 카테고리의 다른 글

java 예외 처리  (0) 2021.01.20
제어자?  (0) 2021.01.20
자바 메모리 관리 ?  (0) 2021.01.19
4주차 제어문  (0) 2021.01.12
3주차 과제 연산자  (0) 2021.01.12