修飾子のoverrideについて理解をする。
そのために次のような状況を想定します。
電車のクラスとそれを継承した新幹線のクラスを作るとします。
電車はプロパティとして最大速度を持っています。
class train {
var maxspeed :Int
init(){
maxspeed = 80
}
}
let enoden = train()
print(enoden.maxspeed) //80
インスタンスとして江ノ電をつくってみました。
たまたま新幹線で投稿してるので電車になってますが詳しくないので速度は適当です。
trainクラスでイニシャライズされているためmaxspeedが80となっています
新幹線クラスを作ってみます。これはtrainクラスを継承させます。
ただ新幹線は最大速度を320とします。
class shinkansen :train{
override init(){ //オーバーライド
super.init()
self.maxspeed = 320
}
}
let nozomi = shinkansen()
print(nozomi.maxspeed) //320
継承されたmaxspeedに320という値がイニシャライズされています。