Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

공부일지

[Java] 바인딩, 캐스팅 개념 정리 본문

Java

[Java] 바인딩, 캐스팅 개념 정리

알라알리야 2023. 7. 5. 22:17

바인딩 : 프로그램에 사용된 구성 요소의 실제 값 또는 프로퍼티를 결정짓는 행위

 

바인딩의 종류

- 정적 바인딩

  • 컴파일 시간(Complietime)에 결정 (프로그램이 실행되어도 변하지 않는다.)
  • 오버로딩 (Overloading) 이 해당된다.
  • 실행 속도에 영향을 주지 않는다.

 

- 동적 바인딩

  • 실행 시간(Runtime)에 결정 (실행 중에도 변할 수 있다.)
  • 오버라이딩 (Overriding) 이 해당된다.
  • 프로그램의 속도가 떨어지는 원인이 되지만 이점이 더 많기 때문에 사용한다.

 

캐스팅의 종류

- 업캐스팅

  • 자식 클래스가 부모 클래스 타입으로 캐스팅 되는 것
  • 공통적으로 할 수 있는 부분을 만들어 간단하게 다루기 위해 사용
  • 캐스팅 연산자 괄호 생략 가능
  • 자식 클래스의 속성과 메소드를 실행하지 못한다.

 

- 다운캐스팅

  • 부모 클래스가 자식 클래스 타입으로 캐스팅 되는 것
  • 캐스팅 연산자 괄호 생략 불가
  • 업캐스팅한 객체를 자식 클래스 타입의 객체로 되돌리기 위해 사용

 

 

 

업캐스팅 특징 +

원래는 업캐스팅을 하면 자식 클래스의 메서드를 실행할 수 없지만 오버라이딩인 메서드일 경우 동적 바인딩이 적용되어 자식 클래스의 메서드가 실행된다.

 

Ex)

// 부모 클래스
class Animal {
	public void eat() {
    System.out.println("먹는다");
    }
}

// 자식 클래스
class Dog extands Animal {
	public void eat() {
    System.out.println("강아지 먹는다");
    }
}


Animal a = new Dog();
a.eat();

"강아지 먹는다" 가 출력된다.
Comments