Shape shapeCircle = new Circle();
ここでの参照はShapeであり、shapeクラスはradius変数を定義していません。したがって、使用することはできません。shapeCircle.getRadius();
get / set radiousメソッドタイプを呼び出すには、次のようにshapecircle変数をキャストします
Circle shapeCircle = (Circle)shapeCircle;
これで、get /setradiousメソッドを呼び出すことができます。ポリモーフィズムを使用するメリットを得るには、型キャストコードを別の方法で使用する必要があることに注意してください。
編集:
ポリモーフィックコードの記述に役立つすべての重要な/一般的な操作/メソッドを持つように抽象クラスまたはインターフェイスを設計する必要があります。例:半径フィールドはCircleクラスに固有ですが、最終的に面積を計算する必要があると考えてください。したがって、抽象クラスでCalculateArea()メソッドを定義し、すべてのシェイプにこのメソッドを実装させる必要があります。これにより、ポリモーフィズムを実現できます。
Shape ShapeCicle = new Circle(Radius);
Float area = ShapeCircle.area();
ポイントは、半径の例にとらわれないことです。ポリモーフィズムの恩恵を受けることができるような方法でクラスを定義するようにしてください。