공부일지
[Java] 바인딩, 캐스팅 개념 정리 본문
바인딩 : 프로그램에 사용된 구성 요소의 실제 값 또는 프로퍼티를 결정짓는 행위
바인딩의 종류
- 정적 바인딩
- 컴파일 시간(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();
"강아지 먹는다" 가 출력된다.
'Java' 카테고리의 다른 글
재귀 함수의 흐름 및 장단점 (0) | 2023.03.15 |
---|---|
ArrayList, hashMap 사용법 (0) | 2023.03.08 |
Char 배열 -> 문자열, 2진수 -> 10진수, 10진수 -> 2진수 (0) | 2023.02.21 |
Comments