반응형
추상클래스와 비슷하지만 다른 인터페이스를 알아보겠습니다.
인터페이스의 정의
- 하위 클래스에서 공통으로 사용할 기능이나 구성요소를 정의해 놓은 것
- 추상클래스와 비슷하나 인터페이스 내에 메소드를 정의할 수 없으며, 추상메소드만 가능
- 변수 -> 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));
}
}
반응형
'Dev > Java' 카테고리의 다른 글
java.lang.ClassNotFoundException: net.sf.ezmorph.Morpher 에러 해결법 (0) | 2022.12.16 |
---|---|
org/apache/commons/lang/exception/NestableRuntimeException 에러 해결법 (0) | 2022.12.16 |
[Java] 추상클래스 & 메소드 정의와 사용 예제 (0) | 2022.12.14 |
[Java] 다형성 예제 및 개념과 형변환 방법 (0) | 2022.12.14 |
[Java] 특정 문자 기준으로 자르기 StringTokenizer 사용법 (0) | 2022.12.13 |