classの継承

昨日のCarクラスを継承したSuperCarクラスを定義します

 SuperCar : class extends Car{
   
   // アクセルを踏む関数をオーバーライドする
   step_on_accelerator : method(power){
     // Carクラスのstep_on_acceleratorメソッドを呼び出す
     Car::step_on_accelerator(power * 2);
   }
 }

 super_car : SuperCar();
 super_car.step_on_accelerator(1);
 println(super_car.velocity); // 2

継承にはextendsキーワードを用います。C++のように : を採用しなかったのは変数定義の : とまぎわらしいためです。
Xtalは多重継承を採用してません。代わりにRubyのようにMix-inが存在します。

Rubyではインスタンス変数は、継承先のクラスでアクセスすることが可能ですが、Xtalではアクセスすることが出来ません。
そのためインスタンス変数に継承元にあるのと同じ名前を使っても何の影響もありません。