IT 개발/Java

[Java] 자바 - 오버로딩과 오버라이딩 (Overloading vs Overriding)

KADOSHOLY 2022. 6. 27. 18:59
반응형

 

자바 - 오버로딩과 오버라이딩 (Overloading vs Overriding)

 

 

자바에서 오버로딩과 오버라이딩은 객체지향언어의 특성중 다형성에 해당되는것으로 간략한 예제와 함께 알아보도록 하겠습니다.

 

 

   목차

  1. 오버로딩(Overloading)
  2. 오버라이딩(Overriding)
  3. 사용예제

 

 

1. 오버로딩 (Overloading)

 

오버로딩은 같은 이름의 메소드를 매개변수의 타입이나 개수에 따라서 중복 정의함으로써, 매개변수에 따라 특정 메소드가 호출되도록 하는 것을 말합니다. 

 

오버로딩
오버로딩 (Overloading)

 

 

2. 오버라이딩 (Overriding)

 

오버라이딩은 부모클래스에 있는 메소드를 자식클래스에서 재정의하여 사용하는 것을 말합니다.

따라서 오버라이딩은 메소드의 이름 및 매개변수의 타입과 개수 등은 모두 동일하고 내용만 변경하여 사용됩니다. 

(단, 접근지정자의 경우, 자식클래스의 메소드 범위가 부모클래스의 메소드 범위보다 넓거나 같아야합니다.)

 

오버라이딩
오버라이딩 (Overriding)

 

 

3. 사용예제

 

1) Book 객체 정의 (부모클래스)

public class Book {
	
	int price = 1000;
		
	public void showPrice() {
		System.out.println("가격:" + price);
	}	
}

 

2) EnglishBook 객체 정의 (자식클래스)

public class EnglishBook extends Book {
		
	public void showPrice() {             // 오버라이딩 (Overriding)
		System.out.println("영어책 가격:" + price);
	}
		
	public void showPrice(int count) {    // 오버로딩 (Overloading)
		System.out.println("영어책 " + count + "권 가격:" + price * count);
	}
}

 

3) 객체 생성 및 실행

public class HelloWorld {
	public static void main(String[] args) {

		EnglishBook b1 = new EnglishBook();
				
		b1.showPrice();
		b1.showPrice(5);
	}
}

 

4) 실행결과

영어책 가격:1000
영어책 5권 가격:5000

 

반응형