Java | Overridng과 Overloading

바다·2023년 5월 18일
0

Java

목록 보기
4/18
post-thumbnail

Overridng과 Overloading

overriding (오버라이딩)

  • 하위 클래스에서 메소드를 정의한 것
  • 메소드 이름 동일 / 매개변수 동일 (갯수, 타입, 순서) / 리턴 타입 동일
  • 자식 메소드의 접근 범위가 부모 메소드의 접근 범위보다 넓거나 같아야 함
  • 자식 메소드의 예외처리 수가 부모 메소드의 예외처리 수보다 적거나 범위가 적거나 범위가 좁아야 함

오버라이딩 예시 코드


public class Car {
	public void drive() {
    	System.out.println("부르릉~ 달립니다!");
    }
}

public class SportCar extends Car {
	@Override
    public void drive() {
    	System.out.println("스포츠카가 달립니다! 뿌르르응!");
    }
}

오버라이딩, 왜 쓰나요?

자식 클래스가 부모 클래스를 상속 받아도, 다른 기능을 사용하고자 하는 경우 가 생기기 때문에 :)

overloading (오버로딩)

  • 같은 클래스에서 메소드 정의
  • 메소드 이름 동일 / 매개변수 다름(갯수, 타입, 순서) / 리턴 타입 상관 없음
  • 접근 제어자와 상관 없음
  • 예외 처리와 상관 없음

오버로딩 예시 코드

public class Car {
	public Car(){}
    
    public Car(int num) {}
    
    public Car(String str) {}
}

오버로딩, 왜 쓰나요?

동일한 기능을 하는 메소드를 '하나의 이름' 으로 처리할 수 있다는 장점이 있기 때문에

오버라이딩과 오버로딩을 비교해야 하는 이유

  1. 일단 이름이 비슷하니 정확히 용어 인지해야 함 (나같은 코린이는 더욱...)
  2. '오버라이딩'과 '오버로딩' 둘 다 Java에서 다형성을 지원하는 방식이기 때문
profile
ᴘʜɪʟɪᴘᴘɪᴀɴs 3:14

0개의 댓글