JAVA 7강_5_인터페이스(interface)

열라뽕따히·2024년 2월 17일

JAVA

목록 보기
42/79

인터페이스(interface) 란?

1. 완벽한 추상화를 제공 :

  • 일종의 추상 클래스임. 하지만 추상 클래스보다 추상화 정도가 더 높음
  • 실제 구현된 것이 전혀 없는 기본 설계도 (알맹이 없는 껍데기)
  • 추상 메서드(알맹이 없는 껍데기)와 상수만을 멤버로 가짐.
  • 인스턴스를 생성할 수 없고, 클래스 작성에 도움을 줄 목적으로 사용이 됨
  • 미리 정해진 규칙에 맞게 구현하도록 표준을 제시하는데 사용이 됨 ==> ex) 명세서

2. 모든 메서드가 추상화(추상 메서드)임

3. 프로젝트 진행 시 표준 규약에 따름
==> 추상 클래스보다 더 많이 사용됨

4. 인터페이스는 상수와 추상 메서드로만 구성이 되어 있음

5. 모든 변수는 상수가 됨
ex) public static final로 인식함

6. 모든 메서드는 추상메서드가 됨
ex) public abstract로 인식 함

7. 인터페이스는 객체 생성이 불가능

8. 자식 클래스로 상속을 하여 자식 클래스에서 객체를 생성

9. 인터페이스는 다중 상속을 제공

10. class -> interface 키워드 사용
extends -> implements 키워드 사용



사용 목적 :
스펙을 주어 클래스들이 그 기능을 서로 다르게 구현할 수 있도록 하는 클래스의 규격 선언이며 클래스의 다형성을 실현하는 도구임



[인터페이스 장점]

  • 개발의 시간을 단축할 수 있음
  • 표준화가 가능함





<예시>

=============================코드=============================

public interface Inter {   // class 대신 interface로 작성
	
	int num = 50;      // 인스턴스 멤버변수 - 상수
	
	void output1();     // 추상 메서드
	
	void output2();     // 추상 메서드

}




인터페이스인 Inter 클래스를 상속받을 Sub 클래스 생성


=============================코드=============================

public class Sub implements Inter {

	@Override
	public void output1() {
		
		System.out.println("인터페이스 output1() 메서드 재정의!");
		
	}

	@Override
	public void output2() {
		System.out.println("인터페이스 output2() 메서드 재정의!");
		
	}

}




메인으로 출력할 Inter_01 클래스 생성


=============================코드=============================

public static void main(String[] args) {
		
		// 인터페이스는 객체 생성 불가능 (가능하기는 함..! 추후 설명 예정)
		// Inter inter = new Inter();   (X)
		
		Sub sub = new Sub();
		
		// static final 상수로 인식을 함. num은 상수이기 때문에 값이 새롭게 줘도 변하지 않음!!
		// sub.num = 237;
		
		sub.output1();
		sub.output2();

	}

=============================실행=============================

0개의 댓글