LOCAL oX, iAx LOCAL ARRAY laM[1] * oX = CREATEOBJECT("xTestSub") * ACTIVATE SCREEN * ? "--- Property h1 defined as Hidden in the superclass, however --- " IF AMEMBERS(laM, m.oX, 0, "G#") > 0 iAx = ASCAN(laM, "H1", 1, -1, 1, 14) IF m.iAx > 0 AND "G" $ laM[m.iAx, 2] ? "Subclass instance has property h1 exposed as public" FONT "Courier New", 10 ENDIF ENDIF * m.oX.h1 access should fail ? "Should not be able to access h1", m.oX.h1 FONT "Courier New", 10 STYLE "BI" m.oX.h1 = "new value to h1" * m.oX.h1 assign should fail ? "Furthermore, should not be able to assign", m.ox.h1 FONT "Courier New", 10 STYLE "BI" * ? *===================================== DEFINE CLASS xTestSub AS xTestBase *===================================== ************************* FUNCTION Init ************************* DODEFAULT() && this seems to make it happen RETURN .T. ENDDEFINE *===================================== DEFINE CLASS xTestBase AS Custom *===================================== HIDDEN h1 h1 = "" ************************* FUNCTION Init ************************* This.h1 = "value from superclass.init" RETURN .T. ENDDEFINE