说我的超类中有一个枚举..
enum SomeEnum{
//some enums here.
}
然后在我的父类中,我有:
class myParentClass {
SomeEnum someEnum
}
然后我的孩子上课:
class myChildClass {
MyParentClass myParentClass
myChildClass(){
//what to place here?
//I expect.. super.someEnum = SomeEnum.ENUM_HERE but i didnt extend it.. so?
// I tried this.someEnum = SomeEnum.ENUM_HERE but it didn't work either... :(
}
}
答案 0 :(得分:1)
目前您有一个合成关系,而不是继承。如果您希望myChildClass
成为myParentClass
的孩子,那么就像这样定义您的孩子
class myChildClass extends myParentClass{
}
然后您可以像这样实例化您的子对象
def child = new myChildClass(someEnum : ENUM_VALUE)
父级中定义的任何属性都将继承给子级。无需在子类中定义构造函数。所有Grails域都带有动态Map构造函数,允许您在实例化新实例时将属性作为映射传递。