參考C#,可以定義不包含抽象方法的抽象類,那麼定義類作爲ABSTRACT的用法是什麼?抽象類沒有抽象方法
回答
基本上,我使用一個經驗法則,你應該總是定義類抽象時,他們必須被繼承來實例化。因爲抽象類本身不能。
例如。假設你有一個Building類,它是抽象的。然後它必須通過派生類實例化,例如銀行或房屋。 Building類中沒有抽象方法的事實與抽象或非抽象無關。
和abstract
具有屬性的類可用於表示繼承中的基類。抽象類不能被實例化。這可能合適,因爲我們不想讓其他人爲我們的基類創建對象。
您可以定義抽象類來定義對象的抽象特性。例如:動物有眼睛。狗可以從動物遺傳,以便它會有眼睛。我們可能會創建一個Dog對象。但是我們不想創建一個Animal對象。
從msdn,
一個抽象類的目的是提供 共同定義一個基類,多個派生類可以共享。例如,類庫可以定義抽象類,該抽象類用作其許多功能的參數 ,並且要求程序員使用該庫 通過創建派生類 來提供它們自己的類的實現。
隨着refrence到C#中,可以定義不包含抽象方法
是抽象類,絕對
然後有什麼用定義類爲抽象的?
主要是爲了傳達類應該派生的事實。通過使構造函數受到保護,也可以實現類似的效果:沒有人能夠創建類的實例而不從它繼承。
任何實際例子??? –
@TalhaMajid:Enum,Delegate,Array,MarshalByRefObject,Attribute,WaitHandle ....使用此查詢來查找更多信息:http://pastebin.com/zjzGNpA9 –
感謝您的幫助:) –
你可以將一個類定義爲抽象類,並且在其中沒有任何方法...但是,由於它只能被其他類繼承並且不能自行實例化,因此無法對其執行任何操作。
- 您不能創建抽象類的實例。
- 抽象關鍵字使您能夠創建不完整的類和類成員,並且必須在衍生的 類中實現。
- 抽象類的目的是提供多個派生類可以共享的基類的通用定義。
抽象類可以包含抽象方法以及普通(具體方法)。
抽象類的目的是用作可以被其他類繼承的基類。 這樣做的好處是多個子類可以利用基類(抽象類)中的方法而不必再次重寫相同的方法。
您定義了一個類abstract
至保留定義抽象成員的可能性。
這是真的,你可以避免這樣做,但在這種情況下,它意味着更少。
這樣的其他問題,可以做到:
爲什麼可以定義一些功能
virtual
,即使沒有人將覆蓋 它。 ?
這些是不同的概念,當然,但提出問題的想法是相同的。
希望這會有所幫助。
一個簡單的規則是,使抽象類(不管它或不包含抽象方法)每當你的感受,如果它是獨立的這個特定的類並不SENS ...
因此使用抽象類當
- 你不容許一個抽象類作爲其過於籠統的對象的實例,爲此目的
- ,但在同一時間允許你給的方法的一些具體實施 這可以由其他類繼承,這是你的分層結構的卓有成效的
我仍然感到困惑,因爲我無法看到任何實際的例子。 –
例如,如果你設計一些學校註冊系統(SRS)..系統的一部分肯定會跟蹤/和系統相關聯的人的信息......在這種情況下,你定義一個類Person(Class .. Too一般爲其實例化的對象)**因此,當然,抽象定義了一些抽象或非抽象的方法對於進一步的類層次結構**有用並且派生學生,這個抽象類中的教授類是確定的候選者正在爲這個SRS實例化.. –
所以你看**你必須使用COMMON SENS **來設計解決方案,來到你面前的場景。 決定什麼太籠統/具體**(抽象類的設計層次結構)** 什麼與你的類沒有任何共享,只是需要與你的類的合同或僅僅共享函數簽名**(接口)** ... –
- 1. C#抽象類沒有任何抽象方法
- 2. 抽象類沒有任何抽象方法
- 3. php抽象類繼承錯誤,沒有抽象方法繼承
- 4. 抽象類非抽象方法調用
- 5. 抽象類和抽象方法
- 6. C#:抽象類中的抽象和非抽象方法?
- 7. 沒有方法的抽象類
- 8. 具有抽象類參數的抽象方法的Java抽象類
- 9. 抽象方法重寫抽象方法
- 10. 抽象基類有抽象嵌套類
- 11. 抽象類是否應該至少有一個抽象方法?
- 12. 建議從抽象類中的方法調用抽象方法
- 13. 在抽象類中使用抽象類時如何實現抽象方法
- 14. 抽象方法
- 15. 抽象方法
- 16. 「不能實例化抽象類......與抽象方法」的類不應該有任何抽象方法
- 17. 如果無法創建抽象類的新對象,抽象類中的非抽象方法有什麼意義?
- 18. 抽象類/方法實現
- 19. 使用抽象類方法
- 20. 抽象類方法聲明
- 21. 抽象類和方法
- 22. 抽象類工廠方法
- 23. 類中的抽象方法
- 24. 抽象與抽象類
- 25. 沒有錯誤,而實例化抽象類,雖然抽象方法未實現
- 26. 抽象類與抽象字段和子類化沒有鑄造
- 27. 抽象類的方法覆蓋另一個抽象類
- 28. 在抽象類中調用非抽象類方法
- 29. 爲什麼你需要知道抽象類的抽象方法是否抽象
- 30. 使用抽象類中抽象類的引用抽象類c
毯子聲明...... WTF你甚至在談論什麼?我可以把任何屬性...動態對象是抽象的嗎? :P – Jay
@Jay:我說'可以'。 – Shyju
讓你回到你的投票,因爲至少你的答案現在有一些類型的感覺:P – Jay