[PREVIEW]
8개의 기초 자료형도 클래스로 관리
자바, 모두 포인터 사용 BUT 동적 할당/해제 제거해 편리
인터페이스 : 상호 접점, 무엇인가 서로 맞대고 있어 얘기하기 위한 것
클래스가 구현해야 할 메소드들이 선언되는 추상형
→ 추상메소드: 정의 해놓았지만, 구현은 없다
→ 어떤 클래스가 상속 받아 오버라이딩 해줘야
인터페이스
: 기본적으로 모두 추상 메소드로 구성
public interface 이름
→ 상수 선언 가능 (final)
→ default 메소드 포함 (기본 메소드, 메소드의 내용이 이미 구현)
→ private 메소드 포함
(클래스와 다른 의미, 내 인터페이스 안에 있는 함수만 사용 가능)
→ static 메소드 포함
BUT 필드(변수) 선언 불가 ← 추상 클래스와 차이
인터페이스의 구성요소
: public만 허용, public, static, final 생략 (→ 필드가 없어 필드와 헷갈리지 않음)
: 추상 클래스에서 구현된 default 메소드를 자동 상속 (클래스의 상속과는 차이)
→ 클래스 상속이 없기 때문에 접근지정이 의미가 X
(과거에는 추상 메소드만 존재, 서비스 차원에서 default 메소드 추가)
: default 메소드가 호출되어 사용, 인터 페이스 내에 메소드 코드 작성
인터페이스의 특징
레퍼런스 변수가 인터페이스를 레퍼런스 할 수 있다. → 선언만 가능하고 객체 생성 X
(업캐스팅 ← 수많은 함수를 없애기 위해 사용되는 오버로딩 때문에)
인터 페이스 구현 ← 모든 추상 메소드 구현하는 클래스 작성
→ implements 이용 ⇒ 오버라이딩
인터페이스는 인터페이스끼리 상속, 다중 상속도 가능 (인터페이스와 클래스의 차이)
인터페이스의 default 메소드의 자동 상속 ≠ 클래스의 상속
여러 개의 인터페이스 동시 구현 가능, 상속 X
인터페이스도 별도의 파일로 작성
4, 인터페이스의 목적