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