inblog logo
|
송승현의 블로그
    객체지향

    [객체지향] 동적바인딩과 추상화

    송송승현's avatar
    송송승현
    Nov 12, 2024
    [객체지향] 동적바인딩과 추상화
    Contents
    동적 바인딩추상화
     

    동적 바인딩

    💡
    프로그램 실행 시에 메서드 호출을 해결하는 과정
    객체지향의 특징인 다형성을 가능하게 함

    예제 코드

    abstract class Animal { abstract void sound(); } class Dog extends Animal { @Override void sound() { System.out.println("Woof Woof!"); } } class Cat extends Animal { @Override void sound() { System.out.println("Meow Meow!"); } } public class Main { public static void main(String[] args) { Animal myDog = new Dog(); Animal myCat = new Cat(); myDog.sound(); // Woof Woof! myCat.sound(); // Meow Meow! } }
     
    • myDog와 myCat 변수는 실행 시점에 실제 객체 타입에 sound() 메서드를 호출
    • 컴파일 시점에는 어떤 메서드가 호출될지 결정 X, 실행 시점에 결정 O

    추상화

    💡
    복잡한 시스템을 단순화하여 중요한 부분만을 표현하는 것
    추상 클래스와 인터페이스를 통해 구현

    예제 코드

    abstract class Animal { abstract void sound(); } class Bird extends Animal { @Override void sound() { System.out.println("Tweet Tweet!"); } } class Fish extends Animal { @Override void sound() { System.out.println("Blub Blub!"); } }
    • Animal 클래스는 추상 클래스, sound() 메서드는 추상 메서드
    • 각 서브 클래스가 해당 메서드를 구현하도록 강제
    • 추상화를 통해 공통적인 인터페이스를 정의, 세부 구현을 서브 클래스에 맡김
     
    Share article
    Contents
    동적 바인딩추상화

    송승현의 블로그

    RSS·Powered by Inblog