class Foo : Object { public G g_data { get; set; } public Foo (G g_data) { Object (g_data: g_data); } } void main () { { var foo = new Foo (new Object ()); assert (foo.g_data is Object); } { var foo = new Foo ("foo"); assert (foo.g_data == "foo"); } }