inblog logo
|
LHS's Study Space
    디자인패턴

    [디자인 패턴] 2. 동적 바인딩과 추상화

    lhs's avatar
    lhs
    Nov 13, 2024
    [디자인 패턴] 2. 동적 바인딩과 추상화
    Contents
    1. 동적 바인딩( Dynamic binding)2. 추상화(Abstraction)
     

    1. 동적 바인딩( Dynamic binding)

    • 동적 바인딩이란 메서드 호출이나 메서드 오버라이딩 처리를 할 때, 컴파일 시간이 아닌 실행 시간에 결정되는 방식이다.
    • 객체 지향 프로그래밍에서 다형성과 밀접한 관련이 있다.
    • 예제 코드
      • class A{ void print(){ System.out.print("A"); } } class B extends A{ void print(){ System.out.print("B"); } } public class Main{ public static void main(String[] args) { A b = new B(); b.print(); } }
      • 예제에서 b는 A일 수도 있고 B일 수도 있다.
      • print() 메서드가 호출될 때 b의 객체에 맞는 B의 print()가 호출되는데 이를 동적바인딩이라 한다.

    2. 추상화(Abstraction)

    • 추상화는 복잡한 시스템을 단순화하는 기법으로, 불필요한 세부 사항을 숨기고 중요한 개념만을 드러내는 방법이다.
    • 객체 지향 프로그래밍에서 추상화는 클래스나 객체를 설계할 때, 세부 구현을 숨기고 인터페이스나 추상 클래스를 통해 핵심적인 부분만을 제공하는 것이다.
    • 예제 코드
      • abstract class Animal{ abstract void Sound(); } class Cat extends Animal{ @Override void sound() { System.out.println("야옹"); } }
      • Animal은 추상 클래스로 sound()라는 추상 메서드를 정의해 동물은 소리를 낸다는 일반적인 개념만 정의하고 세부 구현은 자식 클래스에서 구현하도록 한다.
      • Cat은 Animal을 상속받아 sound()를 구현해서 추상화된 Animal을 구체적인 Cat으로 만들었다.
    Share article
    Contents
    1. 동적 바인딩( Dynamic binding)2. 추상화(Abstraction)

    LHS's Study Space

    RSS·Powered by Inblog