본문 바로가기

백엔드/자바

폴리모피즘

반응형

객체지향 프로그래밍에서는 하나의 인터페이스를 통해 다양한 타입을 구현은 것이 가능한데 이를 폴리모피즘이라고 한다. 하나의 폼을 통해 다양한 값을 주입하는 것이 가능하듯이 하나의 클래스를 폼이라고 생각하면 해당 폼에 다양한 값을 넣을 수 있는 것이 폴리모피즘이라고 보면 된다.

런타임타입 VS 컴파일타입 타입핑

언급한 대로 폴리모피즘은 하나의 클래스를 통해 다양한 타입을 사용하게 하는 데 이는 런타임과 컴파일타입의 차이로 인해 가능하다. 주로 컴파일타입은 변수 정의의 좌측에 런타임타입은 변수 정의 우측에 온다.

지역변수 var (LVTI)

자바버전 10에서 추가된 기능으로 타입에 구애 없이 변수를 정의하게 해 준다. 지역변수타입 추측(LVTI) 아래와 같은 제한을 가진다.

1. 클래스의 필드로 사용불가

2. 함수사인, 매개변수, 리턴타입으로 사용불가

3. 추측을 위해 반드시 값의 정의가 필요 (동일선상에서 널 정의도 불가)

 

728x90
반응형

'백엔드 > 자바' 카테고리의 다른 글

스프링부트 이메일 전송  (0) 2024.02.10
함수 오버로딩 VS 오버라이딩  (0) 2023.12.31
자바: 에러: release version 21 not supported  (0) 2023.12.30
상속  (0) 2023.12.28
클래스  (0) 2023.12.28