동적바인딩과 추상화

KangHo Lee's avatar
Nov 13, 2024
동적바인딩과 추상화

1. 동적 바인딩(Dynamic Binding)

  • 프로그램 실행 시 어떤 메서드를 호출할지 결정하는 것을 의미합니다.
  • 컴파일 시점이 아니라 런타임 시점에 메서드 호출이 바인딩 됩니다.
    • → 다형성 구현
 

소스 코드 예시

class Animal { void sound() { System.out.println("Animal makes a sound"); } } class Dog extends Animal { void sound() { System.out.println("Dog barks"); } } public class Main { public static void main(String[] args) { Animal myAnimal = new Dog(); myAnimal.sound(); // Dog barks 출력 } }
  • 부모 메서드를 오버라이드(override)할 경우 부모 메서드의 내용은 무효화되고 자식 메서드의 내용이 실행됩니다.

2. 추상화(Abstraction)

  • 복잡한 시스템을 간단하게 표현하는 방법입니다.
  • 구체적인 세부 사항을 감추고, 중요한 특성이나 기능만을 드러냅니다.

소스 코드 예시

interface Animal { void sound(); } class Dog implements Animal { public void sound() { System.out.println("Dog barks"); } }
  • Animal 인터페이스에 정의된 sound() 메서드는 구체적인 내용이 없습니다.
  • Animal을 구현한 Dog 클래스에서 구체적인 내용을 작성합니다.
💡
Dog 클래스에서 sound()의 접근 제한자가 public인 이유
  • 인터페이스에 정의된 메서드는 기본적으로 public
  • 이를 구현할 경우 반드시 동일한 접근 제한자로 작성
 
Share article

devleekangho