자바 #2 인터페이스
인터페이스
-클래스가 구현해야 할 메소드들이 선언되는 추상형
-interface 키워드로 선언
-implements로 상속
-필드(멤버 변수)선언 불가능
정해진 메소드 사용을 강제하겠다 즉, 정해진 메소드를 통한 표준화 방식 -->인터페이스
#구성 요소
-상수 : public만 허용 / public static final 생략
-추상 메소드 : public abstract 생략 가능
-default 메소드 : 인터페이스에 코드가 작성된 메소드
-public 접근 지정만 허용, 생략 가능 / 인터페이스를 구현하는 클래스에 자동 상속
-static 메소드 : public, private 모두 지정 가능, 생략하면 public
#특징
-인터페이스의 객체 생성 불가능 ex) new PhoneInterface(); -->( x )
-인터페이스 타입의 레퍼런스 변수는 선언 가능 ex)PhoneInterface galaxy
-서브 클래스는 반드시 상속 받는 추상 메소드 모두 구현
-인터페이스 끼리의 상속 -->extends 사용
Ex) interface MobilePhoneInterface extends PhoneInterface
-다중 상속 가능
Ex) interface MusicPhoneInterface extends MobilePhoneInterface, MP3Interface
#목적
-클래스들이 상속 받는 기능을 서로 다르게 구현할 수 있도록 하는 클래스의 다형성 실현 도구
*추상 클래스와 인터페이스의 비교*
유사점
-객체를 생성할 수 없고, 상속을 위한 슈퍼 클래스로만 사용
-클래스의 다형성을 실현하기 위한 목적