おはようございます。配列内の抽象クラスの派生クラス
基本抽象クラスの派生クラスを作成して使用する方法について質問があります。
どのように動作するのかよくわかりません。
私の目標:そこにあるべき機能かを定義し、別の派生クラスを作成します基本的なクラスを作成します。次に、基底クラスの配列を作成し、異なる派生クラスをインスタンス化します。例えば
:
abstract class UIElement
{
//constructor
abstract public UIElement();
//draw element
abstract public void Draw(int mouseX, int mouseY);
//checks if the element is pointed at by mouse
abstract public Boolean IsPointed(int mouseX, int mouseY);
//defines what happens when clicked
abstract public void Click(int mouseX, int mouseY);
//destructor
abstract public ~UIElement();
}
その後、いくつかの派生クラスを作成し、そのように実行します。
UIElement[] qwe = new UIElement[3];
qwe[0] = new UIElementButton();
qwe[1] = new UIElementLabel();
qwe[2] = new UIElementSomethingElse();
1)私は決定的なを見つけることができないので、それを行うための適切な方法は何ですか基底クラスまたは派生:彼らは宣言されなければならないクラス変数、について答えたり、それを説明するだろう記事...
2)?
3)異なる派生クラスに異なる変数がある場合、どのように対処する必要がありますか?
4)派生クラスは異なる引数を含む異なるコンストラクタを持つことができますか?以下のコメントで
本当にはっきりしていますが、本当に正しいことは正しいですか。 – kkm
それは何が問題なのですか?あなたのコードは正しいようです。私が指摘する唯一のことは、抽象的なデストラクタにはほとんど使用されないことです。代わりに 'IDisposable'を実装してください。 –
@kkm、決して少なくはありません:) – NewProger