Day18 - interface 02

2021. 3. 11. 10:49JAVA 공부

오늘은 비대면 수업인 날 입니다 ~

그래서 집에서 zoom 을 통해 강의를 듣고 있는데요

interface 는 중요하니까, 오늘도 좀 더 배운다고 합니다

 

interface

interface 는 클래스와 클래스의 매개체 역할을 한다고 했죠?

이번에는 이걸 알아 봅시다

 

interface 를 만들게요

자. interface 에 있는 메서드 들은 무조건 오버라이딩을 해줘야 합니다.

그 얘기는, 사용방법 이라고도 이야기 할 수 있을까요?

즉. 메서드의 형태를 보고 어떤 기능으로 만들어야 하는지 사용방법 을 주는겁니다.

여기서 저희가 지어놓은 메서드의 이름은.. 그 기능이 어떤 기능인지 유추할 수 있게 해줍니다.

주석을 달아 놓는다면 더 좋겠죠?

 

이제 위의 interface 를 써서 LG 클래스를 만들어 봅시다

interface 에 있는 메서드들은 전부 오버라이딩 해야 하기 때문에, 이렇게 전부 오버라이딩 했습니다.

이미 interface 에서 오버라이딩 해야하는 메서드 들이 뭐가 있는지 알 수 있죠?

 

즉 interface Printed 는 LG class 에 사용하는 법을 알려준다. 라고 할 수 있습니다

 

저 Printed 라는 interface 를 LG 만 쓸 수 있을까요?

이번에는 Samsung 을 만들어 줍시다

interface Printed 는 LG 와 SamSung 모두 사용이 가능하고, interface 를 보면서, 사용방법을 확인해서 오버라이딩 할 수 있죠?

 

main에서 사용을 해봅시다

이렇게 LG 의 기능을 실행 했어요

그런데 LG 를 Samsung 으로 바꾸면?

그저... 코드 1줄을 바꿧을 뿐인데, 다르죠?

 

이거를 도식화 해서 봅시다.

main 에서 interface 의 기능들을 사용했고, interface 에서 오버라이딩 된 메서드가 실행이 되었다.

main -> Printed -> LG or Samsung

 

이렇게 main 과 LG or Samsung 의 매개체 역할을 하는게 interface 입니다 !

 

interface 도 상속할 수 있을까?

가능하다고 합니다. 그런데 실제로는 잘 사용하지 않는다고 해요 ~

interface 끼리 상속을 하는 방법은 extends 를 써주면 됩니다

그리고 클래스와는 다르게, 다중 상속이 됩니다 ~

 

상속받은 interface 에 있는 메서드까지 전부 오버라이딩 해주면 됩니다.

 

※ 잘 사용하지는 않아서 그런지, 따로 코드를 작성하지는 않았습니다.

 

이렇게 interface에 대해 조금 더 알아 보았습니다

 

고생하셨습니다

 

 

 

 

★ 인터페이스 정리 ★

 

상수와 추상메서드 를 구성멤버로 가진다. ( default 도 있는데, 지금은 안배우고 넘어 간다고 합니다 )

기본적으로 다중상속을 지원한다.

사용방법을 정의한 타입으로 다형성을 구현하는 매우 중요한 역할.

인퍼테스도 데이터 타입이 될 수 있다

사용방법이 동일한 클래스를 만드는 기술이다.

클래스와 클래스를 연결해주는 매개체 역할을 한다

 

추상클래스는 , 오버라이딩을 강제하기 위해서 사용한다. ( 추상메서드 외에도 멤버변수, 일반메서드 를 가질 수 있다 )

인터페이스는 , 추상메서드를 이용해서 사용할 클래스를 연결하는 매개체 이다. ( 사용방법 )

'JAVA 공부' 카테고리의 다른 글

Day18 - 예외처리  (0) 2021.03.11
Day18 - 그동안 뭘 배웠는지 정리해봅시다  (0) 2021.03.11
Day17 - interface 01  (0) 2021.03.10
Day16 - abstract  (0) 2021.03.09
Day16 - final  (0) 2021.03.09