オーバーライドとAreaメソッド
CoddyのJavaScriptジャーニー「オブジェクト指向プログラミング」セクションの一部。レッスン 41/56。
チャレンジ
Circleクラスを改善し、describe()メソッドをオーバーライドして、新しいcalculateArea()メソッドを追加しましょう。
タスク:
次の値を返すように
describe()メソッドをオーバーライドする:${super.describe()} (Circle with radius ${this.radius})。例:"A blue shape (Circle with radius 10)"
- 次の条件を満たす
calculateArea()メソッドを追加する:- 次の数式を使って面積を計算する:
Math.PI * this.radius * this.radius 計算した面積を返す(console.logは不要)
*これはCircle固有のメソッドです(親クラスのShapeにはありません)
- 次の数式を使って面積を計算する:
自分で試してみよう
import { Shape } from './Shape.js';
import { Circle } from './Circle.js';
// テスト
const basicShape = new Shape('red');
console.log(basicShape.describe()); // "A red shape"
const myCircle = new Circle('blue', 10);
console.log(myCircle.describe()); // 出力されるはず: "A blue shape (Circle with radius 10)"
console.log(myCircle.calculateArea()); // 出力されるはず: "314.1592653589793"オブジェクト指向プログラミングのすべてのレッスン
自分で練習してみよう: JavaScriptオンラインコンパイラ