본문 바로가기
security/코틀린

Kotlin - 13. 인터페이스

by aristia 2020. 7. 29.

13. 인터페이스

 

- 인터페이스는 약속이다.

- 인터페이스는 구현하는 클래스는
인터헤이스가 가지고 있는 것을 반드시 구현해야 한다.

- 생성자가 없다.
인스턴스화 시킬 수 없다. -> 설명서가 아니다

- 지침서이다.
-> 구현하고 싶다면 반드시 아래 기능을 구현해야 한다.

 

--------------------------------------------------------------

 

생성자 X,
중괄호 {}가 없는 경우

 

인터페이스는 구현하는 클래스가 그 기능을 채워넣을 수 있도록

Person 뒤에 Person(생성자) 처럼 쓰지 않는다.

그리고 함수 뒤에 중괄호 {}를 쓰지 않는다.

 

반드시 인터페이스는 그 기능을 사용해야 하므로,

오른쪽 클릭해서 Generate 를 클릭한다.
이번에는 Implement Methods 를 클릭해주면
Implement Members가 나온다.

 

이렇게 인터페이스에 있던 기능들을 다 적어주어야 에러가 발생하지 않는다.

 

--------------------------------------------------------------

 

생성자 X,
중괄호 {}가 있는 경우

 

만약, 인터페이스인데 크게 다른 것 같지 않다면,

인터페이스 함수 안에 중괄호를 쓸 수도 있다.

 

그래서 이렇게 이 인터페이스를 구현하는
차이가 없는 클래스 두개를 만들어준다.

 

메인 함수에서 그 기능을 접근하면 된다.

 

그럼 다음과 같이 인터페이스 내에 적었던 내용이 출력이 된다.

 

--------------------------------------------------------------

 

abstact

- 이 클래스는 인터페이스를 구현하는 클래스에서 반드시 구현을 해야한다.

 

이렇게 함수 앞에 abstaract를 적어주는 것이다.

 

그럼 다음과 같이 인터페이스를 구현하는 클래스 안에 반드시 적어줘야 한다.

 

--------------------------------------------------------------

 

클래스와 인터페이스의 차이점을 정리하자면 다음과 같다.

 

<클래스>

- 자식 클래스에서 공통으로 가진 기능을 
부모 클래스에 올려놓으면 편하다.

- 상속을 받지만 자식 클래스가 부모 클래스와 조금 다를 때

- 조상을 찾아가는 느낌

 

<인터페이스>

- 많이 다를 때 사용함.

- 종의 특징

- 인터페이스도 구현이 있는 함수를 만들 수 있다.

- 인터페이스에서 구현이 있는 함수를 만들 경우에는,
그 인터페이스를 구현하는 클래스에서 그 함수를 구현할 필요가 없다.

- 인터페이스에서 구현이 없는 함수를 만들 경우에는,
그 인터페이스를 구현하는 클래스에서 그 함수를 반드시 구현해야 한다.

'security > 코틀린' 카테고리의 다른 글

Kotlin - 14. 제너릭  (0) 2020.07.29
Kotlin - 12. 상속  (0) 2020.07.29
Kotlin - 11. 접근 제어  (0) 2020.07.29
Kotlin - 10. 클래스  (0) 2020.07.29
Kotlin - 09. 반복문  (0) 2020.07.28

댓글