定義下面下面複雜的對象層次到操場的XCode:斯威夫特繼承/對象結構
class Foo {
var name: String
required init(name: String) {
self.name = name
}
}
class Bar: Foo {
}
class Baz: Bar {
}
創建這些類的實例產生混亂的結果:
var foo = Foo(name: "Hello") // renders as {name: "Hello"}
var bar = Bar(name: "Hello") // renders as {{name: "Hello"}}
var baz = Baz(name: "Hello") // renders as {{{...}}}
結果使其顯示bar
和baz
是由其父母的實例組成的對象,而不是從它們繼承。
這是XCode渲染這些對象的方式,還是它們的結構不像我所期望的那樣?
你是什麼意思?他們從他們的父母繼承了'name'字段。這就是繼承的工作原理 –
@Abdul Ahmad:是的 - 名稱屬性不是問題。我的困惑是因爲每個繼承級別都包含在'{}'中,使得它看起來像是一個對象的組合。我期望'foo','bar'和'baz'中的每一個都可以呈現相同的結果(如'{name:「Hello」}') – RRP
噢好吧......那麼爲什麼這麼重要呢?只要對象在創建應用程序時的行爲正確,你應該很好地向右轉 –