2021. 3. 11. 10:49ㆍJAVA 공부
오늘은 비대면 수업인 날 입니다 ~
그래서 집에서 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 |