Java - 오버로딩과 오버라이딩에 대해 알아보자.
Java - 오버로딩과 오버라이딩에 대해 알아보자.
오버로딩
같은 클래스 내의 메서드 이름이 같으나 매개변수의 개수, 타입, 순서를 다르게 해서 같은 이름으로도 여러 개의 메서드를 정의하는 것 뜻한다.
오버로딩의 장점
- 프로그램의 유연성을 높임
- 코드를 깔끔하게 만드는 효과가 있음
오버로딩 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class Main {
public static void main(String[] args) {
Example ex = new Example();
ex.print();
ex.print(10);
ex.print(10, "10");
ex.print("10", 10);
}
}
class Example{
void print(){
System.out.println("Hello World");
}
void print(int a){
System.out.println("Hello World " + a);
}
void print(String a, int b){
System.out.println("Hello World " + a + " " + b);
}
void print(int b, String a){
System.out.println("Hello World " + b + " " + a);
}
}
오버라이딩
상위 클래스가 가지고 있는 메서드를 하위 클래스가 재정의하는 것을 말한다.
상속 관계 클래스에서 사용되며
static,final로 선언한 메서드는 오버라이딩 불가능
오버라이딩 예시
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Main {
public static void main(String[] args) {
Animal dog = new Dog();
dog.voice();
}
}
interface Animal{
void voice();
}
class Dog implements Animal{
@Override
public void voice() {
System.out.println("멍멍");
}
}
오버로딩과 오버라이딩에 대한 내용은 객체지향 프로그래밍과 밀접한 연관이 되어있으며 JVM 상으로 어떤식으로 구성되는지에 대한 내용들도 연관이 있기 때문에 다룰 내용이 이것보다 매우 많지만, 그 내용들은 추후 다른 글에서 다룰 예정이다.
This post is licensed under CC BY 4.0 by the author.