Junior
Vai klase open ir galīga vai nē?
sobes.tech AI
Atbilde no AI
Nav galīgs. Atslēgvārds open skaidri norāda, ka jūs varat manto šo klasi un pārrakstīt tās locekļus.
open class BaseClass {
open func someMethod() {
// Noklusējuma īstenojums
}
}
class DerivedClass: BaseClass {
override open func someMethod() {
// Pārrakstīts īstenojums
}
}
Salīdzināsim ar citiem piekļuves modifikatoriem:
| Modifikators | Mantošana | Locekļu pārrakstīšana |
|---|---|---|
private |
Nē (faila/platības ietvaros) | Nē |
fileprivate |
Nē (faila ietvaros) | Nē |
internal |
Jā (modulī) | Jā (modulī) |
public |
Jā (modulī) | Jā (modulī) |
open |
Jā (jebkurā modulī) | Jā (jebkurā modulī) |
final |
Nē | Nē |
Klase vai loceklis, kas marķēts kā final, nevar tikt pārrakstīts vai mantojams, padarot to par galīgo. open dara pretējo.