Thread Rating:
  • 389 Vote(s) - 2.81 Average
  • 1
  • 2
  • 3
  • 4
  • 5
フィールドはオーバーライドできない?
09-19-2013, 05:08 PM,
#5
RE: フィールドはオーバーライドできない?
dyoshidaさん
アドバイスありがとうございます。
自動生成や、ソースをマージするという方法もあるのですね。
修正しているクラスのファイルに、上書きされると困るので、
初期値の設定を行う役割を別のクラスに移管させるようなデザインがよさそうですね。

初期化忘れがないように、また、正しい初期値が入っているかをチェックするクラスを用意し、
そのクラスを継承することで、
子クラスは、初期値が設定済みであることを前提に実装する、という方法が考えられそうです。


ちなみに、private フィールドならいけるかな、と思いましたが
当然、駄目でした。

Code:
{define-class A
  field private data:String = "a"
  {method {popup}:void
    {popup-message self.data}
  }
}
{define-class B {inherits A}
  field private data:String = "b"
}
{CommandButton
    {on Action do
        def b = {B}
        || ↓B.data ではなく、 A.dataが表示される
        {b.popup}
    }
}
Reply


Messages In This Thread
RE: フィールドはオーバーライドできない? - by umemura - 09-19-2013, 05:08 PM
Forum Jump:


Users browsing this thread:
1 Guest(s)

MyBB SQL Error

MyBB has experienced an internal SQL error and cannot continue.

SQL Error:
1017 - Can't find file: 'mybb_threadviews' (errno: 2)
Query:
INSERT INTO mybb_threadviews (tid) VALUES('962')