Language+/Java

오버플로우(OverFlow)와 오버로딩(OverLoading)과 오버라이딩(OverRiding)

메타H 2023. 8. 16. 15:55

오버플로워(오버플로우)

형식에 벗어나는 범위의 데이터가 입력되었을 때 인식이 되지 않는 현상을 말한다.

형변환을 통해 해결할 수 있다.

더보기

형변환 예시 → Byte.parseByte("") - String형 문자를 byte형으로 변환하는 함수

이와 같이 이미 만들어져있는 함수로 변환할 수 있다. 형변환 함수는 다른 글로 정리하겠다.

b = (byte) 255;와 같이 정수는 간단하게 형변환이 가능하다.

 

오버로딩

  • 정의 : 메서드의 이름은 동일하지만 매개변수의 개수나 타입이 다른 메서드를 여러개 정의하는 것(타입만 다른 것은 X)
  • 목적 : 컴파일 타임 다형성을 실현한다(컴파일 시점에 어떤 동작인지 결정되기 때문)
public void ExMethod()
public int ExMethod(int a)
public int ExMethod(int a, int b)

 

오버라이딩

  • 정의 : 상속관계에서 상위 클래스의 메서드를 하위 클래스에서 재정의함. 
  • 목적 : 런타임 다형성을 실현한다. (실행중 어떤 하위 클래스냐인지에 따라서 동작이 결정되기 때문)
class Person {
	void printText() {
		System.out.println("사람");
	}
}

class Child extends Person {
	@Override
	protected void printText() {
		System.out.println("자식");
	}
}

class Senior extends Person {
	@Override
	public void printText() {
		System.out.println("시니어");
	}
}

extends 자바 패키지를 사용한다 

@Override는 오버라이딩을 검증하는 어노테이션이다.