[Java]::Remind - Interface

Gentlee's Self-Study Log·2023년 4월 26일
0

Java Reminder

목록 보기
6/19
post-thumbnail

Interface - 인터페이스

추상 클래스로 선언된 클래스가 가지고 있는 모든 메서드들이 추상메서드 일 때, abstract가 아닌 interface(인터페이스)로 선언한다.

변수 선언

인터페이스는 메서드들이 완전한 기능을 갖고있지 않은 껍데기뿐이라 new로 멤버변수선언이 불가능하다. 따라서 인터페이스 안에 변수는 자바에서 컴파일 될때, public static final이 붙어 선언된다.

Example code

public interface Messenger{
		
		public static final int MIN_SIZE = 1;
		public static final int MAX_SIZE = 100000;
	}

메서드 선언

추상 메서드 이므로 컴파일 될 때, 앞에 abstract가 붙고 메서드 바디는 생략한다.

Example code

public interface Messenger{

		public abstract String getMessage();
		
		public abstract void setMessage(String message);
		
	}

default 메서드 선언

자바 8부터 지원이 된 default 메서드는 인터페이스를 상속 받는 모든 클래스에서 공통으로 갖는 기능을 구현한다. 그러므로 default 메서드는 메서드 바디를 가지고 있다.

Example code

public interface Messenger{
		
	public default void setSendMsg(boolean check){
		if(check){
        	System.out.println("메세지 전송 완료");
        }else{
        	System.out.println("메세지 전송 실패");
        }
   }
}

static 메서드 선언

자바 8부터 지원이 된 static 메서드는 static 이므로 객체 생성없이 사용이 가능하다. static 메서드 또한 메서드 바디를 갖는다.

Example code

public interface Messenger{
		
	public static void getConnect() {
		System.out.println("연결합니다.");
	}	
}

interface 상속

인터페이스를 상속 받을 때는 부모 클래스를 상속받을 때 사용하는
extends <부모클래스이름> 가 아닌
implements <인터페이스이름>으로 사용한다.

또한 여러 인터페이스를 상속 받을 때는
implements <인터페이스1>, <인터페이스2> 으로 사용한다.

인터페이스와 부모 클래스를 동시에 상속받을 때는
extends <부모클래스> implements <인터페이스> 로 사용한다.

Example code

public class quickMessenger implements Messenger{
	//내용 생략
}
public class quickMessenger implements Messenger, OtherMessenger{
	//내용 생략
}
public class quickMessenger extends QuickWay implements Messenger{
	//내용 생략
}
profile
https://github.com/SamGentlee

0개의 댓글