open class과 abstract class의 차이점

2023. 2. 10. 16:37Study

open class

1. 상속 받는 것도 가능하고 인스턴스화도 가능합니다. 

 

2. open class를 상속 받는 클래스는 부모가 구현해 놓은 open fun을 그대로 가져다가 사용 가능하고
override로 재정의해서 사용할 수도 있습니다. 

 

abstract class

1. 상속 받는 것만 가능하고 인스턴스화가 불가능합니다.

 

2. 하나 이상의 abstract fun, property가 있다면 반드시 abstract로 선언해야합니다.

 

3. abstract class를 상속받는 클래스는 부모가 abstract fun, abstract property를 구현 해 놓았다면,
반드시 abstract fun, abstract property를 구현 및 정의해야 합니다.

 

개인적인 생각

open class : 제약 사항이 없어서 자유도가 높기 때문에 구현하기 편하고

 

재사용성이 좋지만 무분별하게 사용하면 안전성이 떨어질 것 습니다. 

 

abstract class : 제약 사항이 많아서 구현하기 번거롭고 재사용성이 떨어지지만 강제성이 있어서

 

BaseCalss (BaseActivity, BaseDialog)를 구현할 때 좋을 것 같습니다.

 

글에 대한 다른 의견이나 잘못된 점이 있다면 댓글을 남겨주세요 감사합니다 !