ย final
โข
class ์์ final ์ ๋ถ์ด๊ฒ๋๋ฉด ํด๋น class๋ โ์์ํ ์ ์๋ classโ ๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
import Foundation
final class ์์๋ถ๊ฐ๋ฅํํด๋์ค {
}
class final์_์์ํด๋ณผ๊น : ์์๋ถ๊ฐ๋ฅํํด๋์ค {
}
Swift
๋ณต์ฌ
โข
๋ง์ฐฌ๊ฐ์ง๋ก, func์ final ์ ๋ถ์ด๊ฒ ๋๋ฉด override ํ ์ ์๋ ํจ์ ๋ผ๋ ์๋ฏธ๋ฅผ ๊ฐ์ง๊ฒ ๋๋ค.
import Foundation
class ์์๊ฐ๋ฅํํด๋์ค {
final func override์๋๋ํจ์(){}
}
class class๋ฅผ_์์ํด๋ณผ๊น : ์์๊ฐ๋ฅํ ํด๋์ค {
override func override์๋๋ํจ์(){}
}
Swift
๋ณต์ฌ
์ฑ๋ฅ์ ์ธ ์ด์
โข
final๋ก ์ ์ธํ class๋ fun๋ ํ๋ก์ ํธ์์ โ์ ์ผํจโ์ ๋ณด์ฅ๋ฐ๋๋ค.
โข
๊ทธ๋ ๊ธฐ ๋๋ฌธ์, run-time ๋์ค์ ํจ์ ํธ์ถ์ ๊ฒฐ์ ํ์ง ์๊ณ , compile-time์์ ํจ์ ํธ์ถ์ ๊ฒฐ์ ํ ์ ์๊ฒ๋๋ค.
์์ฝ
โข
final๋ก ์ ์ธํ๋ฉด ์์ํ ์ ์๊ฑฐ๋ override ํ ์๊ฐ ์๋ค!
โข
๋ฐ๋ผ์ compile-time์ ํจ์ ํธ์ถ์ ๊ฒฐ์ ํ๋ฏ๋ก ์ผ๋ฐ class๋ func ๋ณด๋ค ์ฑ๋ฅ์ ์ด์ ์ด ์๋ค.