Open vs Public access control - kirseia/study GitHub Wiki

open vs public

  • ์‚ฌ์‹ค ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“ค์ง€ ์•Š์œผ๋ฉด ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š์•˜๋˜ ์ ‘๊ทผ ์ œ์–ด ํ‚ค์›Œ๋“œ์ธ๋ฐ ์ตœ๊ทผ ํšŒ์‚ฌ์—์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ๋งŒ๋“œ๋А๋ผ ๋‹ค์‹œ ํ•œ๋ฒˆ ํ™•์ธ
๊ณตํ†ต์ 
  • ๋‘˜๋‹ค ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ๋ฐฐํฌ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ชฝ์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ์ ‘๊ทผ์ž์ด๋‹ค.
์ฐจ์ด์ 
//module 1
public func A(){}
open func B(){}
//module 2
override func A(){} // error
override func B(){} // success

๋ณ„ ๋‹ค๋ฅธ ์„ค๋ช… ํ•„์š”์—†์ด ์œ„ ์˜ˆ์ œ ํ•˜๋‚˜๋ฉด ์„ค๋ช…์ด ๋  ๋“ฏ, public ์€ override๊ฐ€ ๋ถˆ๊ฐ€ํ•˜๊ณ , open ์€ override ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

Ref.