Hello, Android!

실드 클래스 본문

Kotlin

실드 클래스

lwndnjs93 2020. 4. 4. 17:45

실드 클래스는 미리 정의한 자료형을 묶어서 제공한다

class 키워드 앞에 seald를 사용하며, 실드 클래스는 추상 클래스와 같기 때문에

객체를 만들수 없고 생성자도 기본적으로 private이며 private가 아닌 생성자는 만들수 없다

실드 클래스 블록 내부의 클래스는 상속이 필요하면 open으로 사용이 가능하다

 Friends클래스 내의 Ryan, AnyFriends 클래스는 open으로 만들어져 다른 곳에서 상속이 가능하다

Neo 클래스는 Friends를 상속받았는데, 실드 클래스를 상속받을때는 같은 파일에서만 상속이 가능하다

checkFriends에서 처럼 실드 클래스는 when문과 is문으로 조건에 따른 실행이 가능하다

when문에서 Friends 클래스, 내부 클래스를 상속받는 모든 경우에 대하여 is 분기를 하고 있어 else를 생략 가능하다.

하지만 이를 이너 클래스, 중첩 클래스로 구현을 하면 컴파일러가 모든 경우의 수를 판단할수 없어

else가 필요하다

 

Friends 클래스의 블록 내에 Ryan, Frodo, AnyFriends 를 선언하였지만

블록을 생략하고 아래와 같이 선언하는것도 가능하다

실드 클래스 내에 클래스를 선언했을때는 실드 클래스명 . 내부 클래스명 으로 접근을 하였지만

이렇게 실드 클래스 외부에 선언하였을때는 해당 클래스명 으로 직접 접근이 가능하다

'Kotlin' 카테고리의 다른 글

제네릭  (0) 2020.04.13
열거형 클래스 enum  (0) 2020.04.04
내부 클래스  (0) 2020.04.01
데이터 클래스  (0) 2020.03.30
인터페이스 위임  (0) 2020.03.29