본문 바로가기
Language/Java

자바 인터페이스 예제 및 사용 이유 정리

by wakestand 2019. 10. 29.
반응형

자바에서 인터페이스는 Class가 아닌 Interface를 만들어 사용하게 되는데

우클릭 후 New -> Interface를 눌러 만들어주면 된다

 

위 스크린샷은 interface로 만든 InterExample인데

보면 인터페이스 안에서는 특정 메소드를 이름 혹은 이름과 파라미터만 정의하고 

안에 내용은 없는것이 보이는데

 

이는 인터페이스의 특성상 메소드 안의 내용을 구현하지 못해서 그렇다

인터페이스에서는 외형만 만들고 인터페이스를 사용하는 클래스에서 안의 내용을 구현하는 것이다

 

다음은 인터페이스 InterExample을 사용하는 ImpleInterface 파일인데

implements 인터페이스명을 통해 인터페이스를 사용할 수 있다

 

보면 인터페이스를 implements 시

인터페이스 안에 정의된 메소드를 구현하지 않으면 에러가 뜨는 것이 보인다

 

이렇게 인터페이스를 implements 받으면 인터페이스에 정의한 메소드를 반드시 구현해줘야 한다

 

이제 java에서 인터페이스의 사용법과 용도가 감이 올 텐데

먼저 사용법은 인터페이스 안에 메소드를 정의하고 이후 사용할 클래스에서

implements 인터페이스명

으로 사용한다

 

다음으로 인터페이스의 사용 이유는

인터페이스 안에 구현한 메소드들은

사용하는 클래스들에서 인터페이스를 implements 시

반드시 구현해야 하기 때문에

 

특정 인터페이스 implements 시 각각 다른 클래스에서도

동일한 이름의 메소드를 구현해게 만들 수 있다

 

implements 외에 extends 역시 자주 보게 되는데

extends는 다중상속이 안되고 implements는 다중상속이 된다는 것 외의

차이점은 아래 글을 참고해주면 된다

 

자바 extends, implements 차이점 알아보기

자바에서 extends와 implements는 아예 쓰임새가 다른데 잘 모르고 사용하다 보면 차이가 뭔지 헷갈린다 차례대로 한번 알아보자 먼저 extends인데 위의 ExtendsMe 클래스는 ExtendsImplements 클래스에서 상속받..

wakestand.tistory.com

마지막으로 인터페이스 예제 설명 시 사용한 코드는 아래와 같다

 

public interface InterExample {
	public void makeThis(); // Interface에 정의 후 implements 하면 구현 강제
	public void makeThisWithParam(String name, int age);
}	

 

public class ImpleInterface implements InterExample { // InterExample implements

	@Override
	public void makeThis() { // 구현하지 않을 시 에러 발생
		System.out.println("makeThis Call");
	}

	@Override
	public void makeThisWithParam(String nameValue, int ageValue) { // 받은 파라미터명은 변경해 사용 가능
		System.out.println("makeThisWithParam Call with " + nameValue + " " + ageValue);
	}

	public static void main(String[] args) {
		ImpleInterface inter = new ImpleInterface();
		inter.makeThis();
		inter.makeThisWithParam("Name", 20);
	}
	
}
반응형

댓글