Beny's Study

05. 인터페이스 본문

[JAVA]/09. 다형성

05. 인터페이스

76beny 2022. 4. 14. 17:54

목차

- 인터페이스

- 인터페이스문법

-인터페이스 특징

-인터페이스 장점

-인터페이스상속

-인터페이스 구형

-인터페이스 다형성

 


인터페이스

■ 상수형 필드와 추상 메소드만을 작성할 수 있는 추상 클래스의 변형체( 표준화를 위해서만 사용됨)
 메소드 통일성을 부여하기 위해 추상 메소드만 따로 모아놓은 것(추상메서드집합)
 상속 시 인터페이스 내에 정의된 모든 추상메소드 구현해야 함(구현된것이 없는 밑그림만 있는 기본설계도)

  실체를 가질 수 없고 선언만 할 수 있다!

 

*추상클래스와의 차이

공통점 : 추상메서드가짐

-추상클래스 : 일반클래스+추상메서드

-인터페이스 : 아무것도없고 추상메서드만있음(iv가질수없음)

 

 

문법

[접근제한자] interface 인터페이스명 {
	// 상수도 멤버로 포함할 수 있음
	public static final 자료형 변수명 = 초기값;
    
	// 추상 메소드만 선언 가능
	[public abstract] 반환자료형 메소드명([자료형 매개변수]);
	// public abstract가 생략되기 때문에
	// 오버라이딩 시 반드시 public 표기해야 함
    
}

 

인터페이스 멤버들 제약사항

■ 모든 멤버변수는 public static final이여야 함(생략가능)■ 모든 메서드는 public abstract(생략가능,.추상)(단,static 메서드와 디폴트 메서드는 예외)

 

특징

1. 모든 인터페이스의 메소드는 묵시적으로 public이고 abstract

2. 변수는 묵시적으로 public static final, 
따라서 인터페이스 변수의 값 변경 시도 시 컴파일 시 에러 발생

3. 객체 생성은 안되나 참조형 변수로는 가능

 

장점

- 개발시간을 단축시킬수 있다

-표준화가 가능

-서로 관계없는 클래스들에세 관계맺어줄 수 있다(중간역할)

-독립적인 프로그래밍 가능

 

인터페이스의 상속

■ 인터페이스의 조상은 인터페이스만 가능■ 다중상속 가능

 

인터페이스 구현

■ 인터페이스에 정의된 추상메서드 완성한것(구현)-all구현

Class (완성된설계도) implement (미완성설계도)
//완선된 설계도는 미완성설계도를 구현한다
//상속과 구현 동시에 가능함

 

인터페이스를 이용한 다형성

■ 인터페이스는 클래스의 조상

■ 인터페이스 타입매개변수는 인터페이스 구현한 클래스의 객체만 가능

■ 리턴타입으로 인터페이스 지정가능

Class fighter(완성설계도) extends Unit(조상) implement Fightable(인터페이스)

"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.

이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우

민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."