function Human(self,name,sex,age) { self["property___name"] = name self["property___sex"] = sex self["property___age"] = age self["method___say"] = "Human___say" } function Human___say(self) { printf "私は%s。%d歳の%sです。\n", self["property___name"], self["property___age"], self["property___sex"] }
function Japanese(self,name,sex,age) { Human(self,name,sex,age) self["method___say"] = "Japanese___say" } function Japanese___say(self) { printf "私は%s。%d歳の%sです。国籍は日本です。\n", self["property___name"], self["property___age"], self["property___gender"] }
function methodcall(obj,methodname, m) { m = obj["method___" methodname] @m(obj) }