본문 바로가기
Language/JAVA

JAVA :: 자바 문법 정리(8)

by stern07s 2023. 4. 27.
728x90
반응형

JAVA :: 자바 문법 정리(8)

참조변수(형변환)

컴파일 시에는 참조변수간의 타입만 체크하기 때문에 실행 시 생성될 인스턴스의 타입에 대해서는 전혀 알지 못한다. 그래서 컴파일 시에는 문제가 없었지만, 실행 시에는 에러가 발생하여 실행이 비정상적으로 종료될 수 있다.


참조변수가 참좋고 있는 인스턴스의 실제 타입을 알아보기 위해 instance 연산자를 사용한다. 실제 인스턴스와 같은 타입의 instanceof 연산 이외에 조상타입의 instance 연산에도 true 를 결과로 얻으며, instanceof 의 연산의 결과가 true 라는 것은 검사한 타입으로의 형변환을 해도 아무런 문제가 없다는 뜻이다.

 

참조변수와 인스턴스의 연결

멤버변수가 조상 클래스와 자손 클래스에 중복으로 정의된 경우, 조상 타입의 참조변수를 사용했을 때는 조상 클래스에 선언된 멤버변수가 사용되고, 자손타입의 참조변수를 사용했을 때는 자손 클래스에 선언된 멤버변수가 사용된다. 하지만 중복 정의되지 않은 경우, 조상타입의 참조변수를 사용했을 때와 자손타입의 참조변수를 사용했을 때의 차이는 없다.

 

인터페이스

인터페이스는 일종의 추상클래스이다. 인터페이스는 추상클래스처럼 추상메서드를 갖지만 추상클래스보다 추상화
정도가 높아서 추상클래스와 달리 몸통을 갖춘 일반 메서드 또는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와
상수만을 멤버로 가질 수 있다.


✔️ 모든 멤버변수는 public static final 이어야 하며, 이를 생략할 수 있다.
✔️ 모든 메서드는 public abstract 이어야 하며, 이를 생략할 수 있다. 단, static 메서드와 디폴트 메서드는 예외


원래는 인터페이스의 모든 메서드는 추상메서드이어야 하는데, JDK1.8 부터 인터페이스에 static 메서드와 디폴트 메서드의 추가를 허용하는 방향으로 변경되었다.

반응형

'Language > JAVA' 카테고리의 다른 글

JAVA :: 자바 문법 정리(10)  (0) 2023.04.29
JAVA :: 자바 문법 정리(9)  (0) 2023.04.28
JAVA :: 자바 문법 정리(7)  (0) 2023.04.26
JAVA :: 자바 문법 정리(6)  (0) 2023.04.25
JAVA :: 자바 문법 정리(5)  (0) 2023.04.24

댓글