티스토리 뷰

코딩 공부/자바

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

테크 공부하는 와이번 2023. 8. 18. 16:26

둘은 이름이 비슷하지만 기능은 전혀 다른 걸 의미한다.

 

1. 오버로딩은 메서드의 이름은 같지만 매개변수를 다르게 받는 것을 뜻한다.

public void data(name, byte) {

}

public void data(name, byte, owner) {

}

public void data(name, byte, owner, type) {

}

따라서 오버로딩은 코드의 재사용성과 관리에 용이하다 할 수 있다.

 

2. 그에 비해서 오버라이딩은 부모의 코드를 상속, 재정의하여 사용하는 것을 말한다.

//부모
public class parent {
	public void method() {
    system.out.println("부모 메서드");
    }
}

@Override
public void child extends parent {
	public void method() {
    system.out.println("자식 메서드");
    }
}

오버라이딩은 부모를 상속하기 때문에 당연히 접근이 가능해야한다. 예를 들어 모든 클래스가 접근이 불가능한 private로 변수타입을 지정하는 경우에는 따로 빼내어 지정하는 getter/setter 등이 아니면 자식이라 해도 접근이 불가능해진다. 따라서 다음의 방법을 통해서 해결해야 한다.

 

default : 아래의 3가지를 붙이지 않으면 기본으로 설정된다. 이 클래스(.class)가 있는 패키지(package)내의 클래스들만 접근 가능하다.
public : 어느 클래스든 접근 가능하다.
private : 해당 클래스 내에서만 접근 가능하다. 외부에서 접근이 불가하다.
protected : 동일 패키지(package)와 해당 클래스를 상속한 자식 클래스와는 public과 같으며 그렇지 않은 외부와는 private와 같다.

이를 접근 제한자, 접근 지정자라고 한다.

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/05   »
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 29 30 31
글 보관함