質問: アプレットを勉強しているのですが、このようにGraphicsクラスのオブジェクトを受け取るメソッドが出てきました。 ``` public void paint(Graphics g){ } ``` このGraphicsクラスを調べると、 --- public abstract class Graphics extends Object Graphics クラスは、すべてのグラフィックコンテキストの抽象基底クラスです。グラフィックコンテキストによってアプリケーションは、各種デバイスにより実現されるコンポーネント上やオフスクリーンイメージ上に描画できます。 -------------------------------------------------------------------------------------------------------------- 抽象クラスと出てきました。抽象クラスはインスタンスを作れないと勉強したのですが、これは、、。 なぜGraphicsクラスのオブジェクトを受け取ろうとしているんでしょう。オブジェクトを作れるんですか? プログラマ自身が作れないだけで内部でオブジェクトが自動的に作られていると考えているんですが、しっくりきません。教えてください
回答: Graphicsクラスを継承した子クラス(クラス宣言が「public class ConcreteGraphics extends Graphics」などとなってるクラス)のインスタンスを受け取ることを前提にしているからです。こうすることでGraphicsに共通した処理を同じメソッド内で実装できます。@see ポリモーフィズム