在Actionscript 3中,我無法在Interfaces中聲明變量。 我不明白。 我知道我可以通過定義getter和setter來解決這個問題,但是如果我只想要一個簡單的公共屬性呢?如果我設置或獲取屬性時,我通常會使用getter和setter,但如果我只想存儲一個值,該怎麼辦?爲什麼屬性不能在接口中聲明
5
A
回答
0
我不是一個actioscript編程,但接口(例如在java中)是爲了定義行爲而不是狀態,所以jave中的intrerfaces只是聲明實現接口的類需要定義的方法。屬性(或實例變量)通常不需要定義行爲,並且在接口中不允許使用。
2
你可以這樣說:接口存在,因爲在你的語言中,你不能從多個抽象基類繼承。如果AS3允許你這樣做,它可能不會有'接口',而是'純粹的抽象類'。
換句話說,在界面中有屬性實現會導致名稱衝突,並從那裏導致其他多重繼承問題(菱形)。
但是,只有一個getter或setter沒有實現應該工作。
public interface I { function get A():int; }
(我沒有手頭的AS3編譯器)
相關問題
- 1. 爲什麼我不能在類屬性聲明中做數學?
- 2. 爲什麼只能在頂級類中聲明接口?
- 3. PHP中的接口聲明 - 爲什麼聲明混合?
- 4. 變量聲明:爲什麼接口
- 5. 'DataSource'屬性不能設置爲聲明
- 6. 爲什麼我不能在WebForm中聲明UserControl的子元素(屬性)?
- 7. 什麼括號在接口聲明
- 8. 爲什麼在字典聲明中使用接口?
- 9. 爲什麼要在界面中聲明一個接口?
- 10. 爲什麼在接口中聲明Objective-C實例變量?
- 11. 爲什麼在我的屬性聲明「[field:NonSerialized]」中需要「field:」?
- 12. 爲什麼在ID屬性中允許聲明@ + id
- 13. 爲什麼在PHP中使用隱式屬性聲明?
- 14. 爲什麼在屬性聲明中只使用setter?
- 15. 爲什麼我不能聲明NSFetchResultsController?
- 16. 實現在Kotlin中的接口中聲明的屬性
- 17. php爲什麼當你聲明它時,你不能指定某個屬性?
- 18. 爲什麼+在屬性href功能。不
- 19. 什麼類型的屬性可以直接在聲明性標記中設置(作爲屬性)?
- 20. 爲什麼要在每個接口方法上聲明org.apache.thrift.TException?
- 21. 接口不能聲明類型
- 22. 在.Net中,爲什麼在調用Type.GetCustomAttributes(true)時返回的接口上未聲明屬性?
- 23. 爲什麼我不能在類聲明中使用「使用」聲明?
- 24. 爲什麼不能在F#中的函數中聲明類型?
- 25. 接口是否可以聲明屬性而不是方法?
- 26. 爲什麼不重新聲明DataContext屬性在WPF中,如果調用基
- 27. 爲什麼在接口爲什麼不能在抽象類
- 28. 爲什麼要爲JAX-RS實現聲明一個接口?
- 29. 爲什麼依賴屬性被聲明爲靜態只讀?
- 30. 爲什麼excecSQL在聲明中不接受*?
屬性是不一樣的實例變量。 – 2009-07-23 21:03:07
+1 ......原則上...因爲這對於AS3來說並不是真的有效...屬性(由訪問者提供)和變量之間存在區別......從外部來看,這是完全透明的,是IDENTICAL在語法層面......但有效的屬性訪問意味着一個調用和變量訪問不......接口可以聲明屬性訪問器,但不是變量......這不是100%一致或不合理......但這就是生活,我猜... :) – back2dos 2009-07-23 21:05:44