오버로딩, 오버라이딩

DEV_HOYA·2023년 10월 16일
0

CS

목록 보기
8/55
post-thumbnail

📌 오버로딩(Overloading)

⭐ 개념

  • 메소드 이름이 같아도 매개변수 개수, 타입, 순서를 다르게 해서 같은 이름의 여러개의 함수를 정의할 수 있는 것
  • '리턴 값만' 다른 것은 오버로딩을 할 수 없다

⭐ 코드

public class Main {
	public static void main(String[] args) {
		int a = 1;
		int b = 2;
		int c = 3;
		double d = 1.1;
		double e = 2.3;
		Calculator calc = new Calculator();
		calc.add(a, b);
		calc.add(a, b, c);
		calc.add(d, e);
	}
}

class Calculator{
	void add(int a, int b) {
		System.out.println(a+b);
	}
	void add(int a, int b, int c) {
		System.out.println(a+b+c);
	}
	void add(double a, double b) {
		System.out.println(a+b);
	}
}

📌 오버라이딩(Overriding)

⭐ 개념

  • 상위 클래스가 가지고 있는 메소드를 하위 클래스가 재정의하는 것
  • 상속관계에 있는 클래스 사이에서 사용됨
  • 오버라이딩하고자 하는 메소드의 이름, 매개변수, 리턴 값이 모두 같아야 한다
  • static, final로 선언한 메소드는 오버라이딩 불가
  • interface를 implements하여 오버라이딩 하기도 함

⭐ 코드

public class Main {
	public static void main(String[] args) {
		Dog dog = new Dog();
		dog.talk();
	}
}

class Animal{
	void talk() {
		System.out.println("TALK");
	}
}

class Dog extends Animal{
	@Override
	void talk() {
		System.out.println("멍멍");
	}
}

0개의 댓글