[注意:在您的 cfcs 中包含代码通常是不好的做法,(请参阅下面的答案),因此请考虑这只是研究]
总而言之,我有一个类和一个子类以及一个被子类覆盖的方法。当我在子类中对方法进行硬编码时,一切正常,当我使用 cfinclude 将其包含在伪构造函数中时,mixin 样式,我得到一个“不能多次声明例程”。错误。
这似乎很简单。我想念什么:这个混音?
父类:
<cfcomponent >
<cffunction name="hola" hint="i am the parent method">
<cfreturn "hola - parent">
</cffunction>
</cfcomponent>
子班:
<cfcomponent extends="mixinTestParent">
<!--- this would work, successfully overridding parent method
<cffunction name="hola" hint="i am the child method">
<cfreturn "hola - child">
</cffunction>--->
<cfinclude template="mixinTestInc.cfm">
<cffunction name="init" access="public" returntype="any" output="false">
<cfreturn this>
</cffunction>
</cfcomponent>
包括:
<cffunction name="hola" hint="i am the child method" access="public">
<cfreturn "hola - child">
</cffunction>
跑步者:
<cfset test = new mixinTestChild().init()>
<cfdump var="#test.hola()#">
提前致谢!!