본문 바로가기

6개월 대장정/JAVA 개념

17일차 - 인터페이스(1)

반응형

안녕하세요. pitang입니다.

인터페이스에 대해 모두 알아보겠습니다.

 

인터페이스

인터페이스는 객체의 사용 방법을 정의한 타입이다.

 

인터페이스의 선언은 class 키워드 대신 interface 키워드를 사용한다.

클래스에서 인터페이스를 구현하고 싶을 때는 클래스 이름 뒤에 implements 키워드를 사용한다.

인터페이스의 이름은 클래스 이름을 작성하는 방법과 동일하게 카멜 표기법을 사용한다.

 

클래스처럼 extends 키워드를 사용하여 인터페이스 간의 상속을 구현할 수 있다.

기본적으로 클래스가 아니기 때문에 일반 변수, 일반 메서드를 사용할 수 없다.

 

쉽게, 인터페이스를 사용하는 이유는 모든 클래스를 정의하지 않고 필요한 클래스만 묶어 구현하게 할 수 있다.

그러므로 다형성을 구현하는 매우 중요한 역할을 한다.

 

인터페이스 - 추상 메서드

메서드는 추상메서드 형식으로 선언하면 abstract를 붙이지 않더라도 자동으로 붙게 된다. 

 

ex)

Pet (인터페이스)
KindaCat - KindaDog (추상클래스) - SledDog (인터페이스)
Malamute - Cat 
Example1 MainClass

-> 모두 true가 나오게 된다.

Example2 MainClass

-> 무시합니다.

     자리에 앉습니다.

Example3String MainClass

-> 전부 true, 그리고 spring의 길이 6이 나오게 된다.

Example4 MainClass

-> true와

썰매를 끕니다.

자리에 앉습니다.

멍멍

썰매를 끕니다.

자리에 앉습니다.  가 출력됩니다. 

 

인터페이스 - 디폴트메서드

디폴트 메서드의 사용은

default 리턴 타입 메서드명(매개변수,...) {

}

이다.

 

디폴트 메서드는 public 특성을 가지기 때문에 public을 생략하더라도 자동으로 붙게 된다.

또한 디폴드 메서드를 오버 라이딩할 수 있다.

 

ex)

Pet (인터페이스)
Dog - Cat
Example1 MainClass
MainClass console

 

인터페이스 - 정적 메서드

형태는 클래스의 정적 메서드와 완전 동일하고 정적 메서드도 public 특성을 갖기 때문에 publicd을 생략하더라도 자동적으로 붙게 된다.

 

ex)

MyInterface (인터페이스)
Example1 MainClass - console

 

인터페이스 - 상수 필드

인터페이스는 데이터를 저장할 수 없기에 저장할 인스턴스 또는 정적 필드를 선언할 수 없다. 대신 상수 필드는 선언할 수 있다.

인터페이스의 선언된 변수는 public static final을 생략하더라도 자동으로 붙게 된다. 또한 선언과 동시에 초기값을 지정해야 한다.

 

ex)

MyInterface (인터페이스)
Example1 MainClass - console

 

 

감사합니다.

 

*m1 맥북을 사용 중입니다.*

728x90
반응형