170106


오늘 한 것

  • 개발자인 친구를 만나서, 현재 내가 무엇을 해야되는지에 대한 조언을 받고 왔다.

  • 자바 기본서 복습 (6장) 기존에 배우고 사용하면서도 ‘이건 왜 있는거지?’ 싶었던 것들을 이 책에서는 잘 설명해줘서 너무 좋았다. 오버로딩이랑 오버라이딩이 솔직히 조금 헷갈렸는데 확실하게 이해한 김에 간단하게 메모~ (책에 있는 내용을 참고했다)

오버로딩과 오버라이딩의 차이점

  • 오버로딩 : 하나의 클래스에 같은 이름의 메소드들을 여러 가지 형태로 정의하는 것을 의미. -> 메소드 선언부의 반환형과 메소드 이름은 반드시 같게 하되, 매개변수의 개수나 데이터형이 달라야한다. -> 오버로딩된 메소드를 다른 객체에서 실행하면 JVM 내부에서 어떤 매개변수가 몇 개 들어왔는지 확인하여 적합한 메소드를 찾아 실행한다.

  • 오버라이딩 : 상속 관계에 있는 자식 클래스에서, 상속받은 자원을 재 정의하는 것을 의미. -> ‘부모 클래스에 자식 클래스와 동일한 이름의 변수나 메소드가 있다면 자식 클래스의 것이 우선이다.’ -> 오버라이딩은 자식 클래스에서만 적용 가능하며 메소드의 선언부를 그대로 사용해야 한다. (단, 접근 제어자와 예외 처리는 제외) -> 오버라이딩을 하는 주된 이유는 상속받은 메소드들 중 수정해야할 내용이 있을 때 사용한다.

  오버로딩 오버라이딩
적용 범위 하나의 클래스 내부 상속 관계에 있는 자식 클래스의 내부
포인트 loading 즉, 메소드를 층층이 쌓는다라는 의미에 주목 riding 즉, 기존에 있는 메소드에 올라탄다는 의미에 주목
목적 메소드의 효율성을 증가하기 위한 목적으로 사용 메소드를 재정의함으로써 여러 형태의 기능을 구현하는 목적으로 사용