JAVA

[JAVA] 인터페이스

(งᐛ)ว 2023. 8. 26. 23:24
728x90

인터페이스 : 다른 클래스코드들과 중간매개역할을 중점으로 함.

추상메서드와 상수로만 이루어져있고 추상클래스처럼 스스로 객체생성 불가. 생성자가 없음. 

*상수_값을 초기화한 다음엔 대입이 불가능

접근제한자 interface 인터페이스이름 {

...

접근제한자 abstract 메서드이름 (매개변수1, 매개변수2...)

...

}

 

인터페이스의 모든 필드는 public/static/final, 모든 메서드는 public/abstract이어야 한다. 

인터페이스 안에서는 상수라고 인식하기 때문에 final 생략가능 

 

 

인터페이스끼리는 extends 상속이 가능하다.

인터페이스를 구현하는 클래스는 implements 사용

 

 

 

 

인터페이스+다형성 예제 

Phone 인터페이스 생성

**static : 객체가 생성되지 않기 때문에 내부상수에 접근하려면 클래스변수처럼 static 선언되어 메모리에 올라가야함!

ex) static int MAX_BATTERY_CAPACITY = 100;

 

Phone 인터페이스를 기반으로 두개의 구현클래스 생성 

5개의 메서드를 각각 전부 오버라이딩해야한다.

 

+다형성 고려

생성자의 파라미터를 Person 객체로 받거나

메서드의 파라미터를 변수로 받거나 

 

결과

 

**인터페이스 사용의 장점**

클래스의 내용을 전혀 보지 않고도 개발코드로 객체를 사용할 수 있다. 👉정보은닉

구현클래스들이 독립적으로 사용될 수 있다. 개발코드에서 객체변경이 필요할때 개발코드 수정을 최소화할 수 있다. 👉모듈화

 

 

 

 

 

728x90

'JAVA' 카테고리의 다른 글

[JAVA] 예외처리  (1) 2023.08.29
[JAVA] 내부클래스  (0) 2023.08.29
[JAVA] 추상메서드와 추상클래스  (0) 2023.08.26
[JAVA] 다형성  (0) 2023.08.26
[JAVA] 클래스 타입변환  (0) 2023.08.26