Dev/Java
[Java] 인터페이스 사용법, 추상클래스 차이점
늙은개발자
2022. 12. 15. 17:52
반응형
추상클래스와 비슷하지만 다른 인터페이스를 알아보겠습니다.
인터페이스의 정의
- 하위 클래스에서 공통으로 사용할 기능이나 구성요소를 정의해 놓은 것
- 추상클래스와 비슷하나 인터페이스 내에 메소드를 정의할 수 없으며, 추상메소드만 가능
- 변수 -> 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));
}
}
반응형