본문 바로가기
▶개발/JAVA

자바(JAVA) 접근제어자와 오버라이딩, 오버로딩

by 브라더 준 2018. 5. 21.

1. 접근제어자 

자바에서는 아래와 같은 접근제어자가 존재한다. 말그대로 접근을 제어하는 역할을 행한다.


1) private

: 해당 클래스에서만 접근이 가능하다


2) protected

: 동일 패키지내의 클래스 또는 해당 클래스를 상속받은 외부 패키지의 클래스에서 해당 변수, 메소드에 접근이 가능하다


3) public

: 어떤 클래스에서든 해당 변수, 메소드에 접근이 가능하다.


4) defalut

: 별도의 접근 지시 제어자를 설정하지 않은 경우이다. 해당 패키지내에서 해당 변수, 메소드에 접근이 가능하다.





2. 오버라이딩(overriding), 오버로딩(overloading)

오버라이딩은 부모 클래스에 있는 메소드를 자식 클래스에서 재정의 하는 것이다. 오버로딩은 메소드의 매개변수에 따라 전혀 다른 정의의 메소드를 중복할 수 있다.



오버라이딩 예시

class SuperClass{ 			// 부모 클래스
	public void itis() { 	// 부모클래스의 itis 메소드 
		System.out.println("It's super class"); // it's super class 출력 
	}
}

class SubClass extends SuperClass{  // 부모 클래스를 상속(extends)해서 만든 자식 클래스
	public void itis() {			// 자식 클래스의 itis 메소드, 부모 클래스의 itis 메소드를 재정의(오버라이딩).
		System.out.println("It's sub class"); // it's sub class 출력
	}
}

오버로딩 예시

public class AAA {
	
	public void showPrint(int n) {
		System.out.println(n);
	}
	
	public void showPrint(int n1, int n2) {
		System.out.println(n1+","+n2);
	}
	
	public void showPrint(int n1, double n2) {
		System.out.println(n1+","+n2);
	}
}



오버라이딩은 아래의 특징을 갖고 있다.

1. 부모의 메소드와 같은 이름, 매개변수, 반환형이어야 한다


2. 상위 클래스의 메소드를 무시, 하위클래스의 메소드를 우선적으로 호출한다


오버로딩은 아래의 특징을 갖고 있다.

1. 동일한 이름의 메소드를 둘 이상 정의가 가능하다. 단, 매개변수의 자료형이나 개수가 달라야 한다.


2. 생성자 또한 오버로딩이 가능하다.


반응형