반응형

추상클래스와 비슷하지만 다른 인터페이스를 알아보겠습니다.

 

인터페이스의 정의

  • 하위 클래스에서 공통으로 사용할 기능이나 구성요소를 정의해 놓은 것
  • 추상클래스와 비슷하나 인터페이스 내에 메소드를 정의할 수 없으며, 추상메소드만 가능
  • 변수 -> Public static final, 메소드 -> Public abstract의 제어자가 선언됨
  • 하나의 클래스에 인터페이스를 전환하여 다중으로 상속 가능
  • 정의된 메소드는 오버라이드 형태로 재정의하여 사용

 

인터페이스 선언 및 사용법

interface plus {
	int calc_p(int num1, int num2);
}

interface minus extends plus{
	int calc_m(int num1, int num2);
}

위와 같이 인터페이스 선언할 수 있으며

인터페이스끼리의 상속도 가능합니다.

 

추상클래스 인터페이스 차이점

  추상클래스 인터페이스
일반변수  선언 가능 상수만 가능
선언 방법 extends implements
다중 상속 불가능 가능

 

장점

  • 공통을 미리 정의하여 소스코드 생산성이 빠름
  • 정형화된 기능을 구현할 수 있음
  • 예외적으로 다중 상속을 구현할 수 있음

 

예제 소스

interface plus {
	int calc_p(int num1, int num2);
}

interface minus extends plus{
	int calc_m(int num1, int num2);
}

class calculator implements minus{

	@Override
	public int calc_p(int num1, int num2) {
		return num1 + num2;
	}

	@Override
	public int calc_m(int num1, int num2) {
		return num1 - num2;
	}
	
}

public class exeClac {	
	public static void main(String[] args) throws Exception {

		calculator c = new calculator();
		
		System.out.println(c.calc_p(10, 20));
		System.out.println(c.calc_m(20, 10));
	}
}

 

반응형

+ Recent posts