Code: Select all
vObj1 := new progen()
vObj2 := new extend1()
vObj3 := new extend2()
MsgBox, % "progen: [" vObj1.Test "]`nextend1: [" vObj2.Test "]`nextend2: [" vObj3.Test "]"
Return
class progen
{
__Test := 1
Test() {
}
__Get(pName) {
If ObjHasKey(this, "__" pName)
Return this["__" pName]
}
}
class extend1 extends progen
{
__Test := 2
}
class extend2 extends progen
{
__Test := 3
Test() {
}
}
Code: Select all
progen: [1]
extend1: [2]
extend2: [3]
Code: Select all
progen: [1]
extend1: [2]
extend2: []
Maybe I'm just missing something? If it's an intended behaviour, I would very much appreciate a brief explanation as to why it works like that. If it is a bug, then I'll just be glad to have found a second bug... after several years of using AHK