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 |
댓글