Method

ymk·2023년 6월 9일
0
post-thumbnail

📋 함수와 Method의 차이?

함수와 Method는 근본적으로는 같은 것을 의미하지만 어디에 작성되느냐에 따라 다르게 불린다. 함수는 독립적으로 존재하고, Method는 클래스에 종속적인 함수이다.


🔨 Overloading Vs Overriding

Overloading: 한 클래스 내에 같은 이름의 메서드를 여러 개 정의하는 것이다. 이때 오버로딩의 조건은
1. 메서드의 이름이 같아야 하는 것이고,
2. 매개변수의 개수 또는 타입이 달라야 한다는 것이다.
조심해야 할 것은 반환 타입은 오버로딩을 구현하는데 아무런 영향을 주지 못한다는 것이다.

Overriding: 조상 클래스로부터 상속받은 메서드의 내용을 변경하는 것이다. 상속받은 메서드를 그대로 사용하기도 하지만, 자손 클래스의 상황에 맞게 변경해야하는 경우가 있고 이때 오버라이딩한다. 자손 클래스에서 오버라이딩하는 메서드는 조상 클래스의 메서드와
1. 이름이 같아야 한다.
2. 매개변수가 같아야 한다.
3. 반환타입이 같아야 한다.
조심해야할 점은 접근 제어자를 조상클래스보다 좁은 범위로 설정할 수 없는 것이다.

둘의 차이점을 쉽게 정리하자면,

Overloading은 기존에 없는 새로운 메서드를 정의하는 것이고,
Overriding은 상속받은 메서드의 내용을 변경하는 것이다.

✒️ Method signature

Java에서 Method Signature는 메서드의 이름, 파라미터의 순서, 타입 그리고 개수를 의미한다.

예를 들어,

public int Multiply(int a, int b) {
	return a * b;
}

이 코드에서 메서드 시그니처는 Multiply(int a, int b)이다.

같은 시그니처를 가진 코드

int doSomething(int y) 
String doSomething(int x)
int doSomething(int z) throws java.lang.Exception // Exception은 시그니처 X

다른 시그니처를 가진 코드

doSomething(String[] y);
doSomething(String y);

Reference

https://en.wikipedia.org/wiki/Type_signature

profile
개발 공부 일지

0개의 댓글