CS

오버로딩(Overloading)과 오버라이딩(Overriding)이란?

cob 2023. 2. 1. 15:13

 

오버로딩(Overloading)

 

오버로딩(overloading)이란?
같은 이름을 가진 메서드를 여러 개 두는 것을 말한다. 메서드의 타입, 매개변수의 유형, 개수 등으로 여러개를 둘 수 있으며 컴파일 중에 발생하는 정적 다향성이다.

 

1. Java 오버로딩 예

class Person {

	public void eat(String a) {
		System.out.println(" I eat "+ a);
	}

	public void eat(String a, String b ) {
		System.out.println(" I eat "+ a + " and " + b);
	}
}

public class CalculateArea {

	public static void main(String[] args) {
		Person a = new Person();
		a.eat("apple");          // I eat apple
		a.eat("toato", "phodo"); // I Eat toato and phodo
	}
}

 

 

 

 


 

오버라이딩(Overriding)

 

오버라이딩(overriding)이란?
주로 메서드 오버라이딩을 말하며 상위 클래스로부터 상속받은 메서드를 하위 클래스가 재정의하는 것을 의미한다. 이는 런타임 중에 발생하는 동적 다형성이다.

 

2. Java 오버라이딩 예

class Animal {
	public void bark() {
		System.out.println("mumu! mumu!");
	}
}

class Dog extends Animal {
	@Override
	public void bark() {
		System.out.println("wal!!! wal!!!");
	}
}

public class Main {
	
	public static void main(String[] args) {
		Dog d = new Dog();
		d.bark(); // wal!! wal!!
	}
}
  • 부모 클래스는 mumu! mumu!로 짖게 만들었지만, 자식 클래스에서 wal!! wal!!로 짖게 만들었다.
    자식 클래스 기반으로 메서드가 재정의됨을 알 수 있다.

 

 

 

반응형