タグ

2010年10月7日のブックマーク (2件)

  • unbland.org blog » Blog Archive » ActionScript 3 で抽象クラス

    Java でいう abstract 修飾子がないので疑似実装するしかないですが、今までは getQualifiedClassName() 使ってクラス名を取得後、文字列で判別してました。でも前回のエントリーで constructor プロパティの有用性を知ったので、こちらを使っての実装法を考えてみました。 ActionScript // AbstractClass package { public class AbstractClass { public function AbstractClass():void { if (Object(this).constructor == AbstractClass) { throw new Error("このクラスは抽象クラスなので直接インスタンス化できません."); } } } } // SubClass package { public cl

    oki448jp
    oki448jp 2010/10/07
    抽象クラス
  • AS3で抽象クラスを泥臭く作る (memo.kappa-lab.com)

    AS3ではインターフェイスを定義できるもののアブストラクトクラス(抽象クラス)できない。この問題に関してはビンタ先生も「PHPが羨ましいのは抽象クラスをてきぎできるところ(だけ)」とtwitterで言ってた気がする。(間違ってたらごめんね。) ところが、DisplayObjectなんかは間違いなく抽象クラスだし、ASDocを読んでも「このクラスは基抽象クラスだからnewすんなyo!」とか書いてあります。 ビルトインクラスで可能なんだから、カスタムクラスでもできるんじゃないかと思って、少し考えてみたところ、泥臭いながら定義できるようになりました。 さらに泥臭いながらも抽象メソッドも定義してみました。 具体的には 1.抽象クラスのコンストラクタでgetQualifiedClassName()を使って完全修飾名から抽象クラスかサブクラスかを判断。抽象クラスならエラーを吐く。 2.抽象メソッド内

    oki448jp
    oki448jp 2010/10/07
    AS3で抽象クラスを泥臭く作る