코틀린-안드로이드

4일차)코틀린 문법 - 4

songyooho 2024. 5. 16. 18:04

1.상속(inheritance)

 

1)의미:클래스 선언시 다른 클래스를 참조해 선언

 

2)형태:

<1>상위 클래스 오픈: open class Super{} //super란 클래스를 상속할 수 있게 오픈함

<2>상속: class Sub: Super(){} //sub란 클래스가 super를 상속받음

=>이떄 super는 상위클래스, sub는 하위 클래스

<3>매개변수가 있는 경우는 Super()에 적어줘야함

ex)class Sun(name: String): Super(name){}

<4>하위 클래스에 보조생성자만 있는경우:보조 생성자에 매개변수전달

ex)class Sub: Super{ constructor(name:String):super(name){}}

 

3)오버라이딩:상속받은 클래스의 멤버를 재정의할 수 있음

<1>open:재정의 하기 위해서는 해당 멤버를 상위클래스에서 우선 open해줘야함.

=>open var someData = 10

<2>override:하위 클래스에서 재정의

=>override var someData= 20

 

2. 접근 제한자

1)사용: 최상위와 클래스 멤버에서 사용가능

2)기본: 생략시 기본은 public임

3)종류

접근제한자 최상위에서 사용 클래스 멤버에 사용
public 모든 파일에서 사용가능 모든 클래스에서 사용가능
internal 같은 모듈에서 사용가능 같은 모듈에서 사용가능
protected 사용 불가 상속 관계 하위클래스에서 사용가능
private 파일 내부에서 사용가능 클래스 내부에서 사용가능

@여기서 같은 모듈은 프로젝트 내부에서 사용가능함을 뜻함