有沒有辦法通過繼承來訪問函數,而不需要設置函數對public的訪問?ColdFusion中的函數訪問
例如:我有Foo.cfc,它擴展了Bar.cfc。如果我想從Foo.cfc調用Bar.cfc函數,則必須將函數訪問權限設置爲public。
如果我將函數設置爲private,那麼它只能從Foo.cfc訪問。是否沒有「中間」訪問級別,不是非常公開的,而是嚴格私人的?即它允許通過繼承進行訪問...
有沒有辦法通過繼承來訪問函數,而不需要設置函數對public的訪問?ColdFusion中的函數訪問
例如:我有Foo.cfc,它擴展了Bar.cfc。如果我想從Foo.cfc調用Bar.cfc函數,則必須將函數訪問權限設置爲public。
如果我將函數設置爲private,那麼它只能從Foo.cfc訪問。是否沒有「中間」訪問級別,不是非常公開的,而是嚴格私人的?即它允許通過繼承進行訪問...
您是否正在使用關鍵字super
?因爲private methods should be available to sub components喜歡Foo.cfc。
Foo.cfc
<cfcomponent extends="Bar">
.....
<cffunction name="fooMethod" access="public" ...>
<cfreturn super.nameOfAMethodInBarCFC() />
</cffunction>
</cfcomponent>
如果我設置的功能訪問私有,那麼它從Foo.cfc
才能訪問不是真的! ColdFusion的private
訪問級別是相同的Java protected
,所以你仍然可以調用酒吧的私有方法從富
您需要設置訪問屬性在cffunction包裝。這將允許任何擴展該組件的組件訪問它。
我犯了一個錯誤。事實證明,亨利和其他人指出私人方法是可訪問的。抱歉虛驚一場。 – Mohamad 2011-02-04 06:28:20