Q
如何使用抽象類
0
A
回答
3
抽象類根本不能被實例化(如在創建)。就這些。基類可以是。
抽象類用於幫助定義子類的結構,子類可以是將要創建的基類。
這使得抽象類可以更靈活一些。例如,抽象類中的函數可以是「虛擬函數」。這只是意味着它還沒有制定,沒有代碼。兒童班將必須做到這一點。不抽象的類不能具有「虛擬函數」,並且必須具有其所有函數的精確代碼。
0
抽象類是類的「半實現」。它們可以通過一些通用功能部分實現,但將部分實現留給繼承類。你可以有一個名爲Animal的抽象類,它已經實現了一些通用的行爲/值,比如年齡,名字,SetAge(...).
。你也可以有沒有實現的方法(它們是抽象的),很像接口。
接口只是指定應該可用於類的行爲的合約。你可以有一個像IWalker這樣的接口,需要公共方法Walk(),但沒有具體說明它是如何實現的。
源:What are some practical examples of abstract classes in java?
更多的例子:
0
0
抽象類主要用來提供給子類和子力共同功能有自己的實現抽象成員。它不能被初始化,所以單獨它不是一個對象,但在子類的行爲參與
public abstract void Import(Oasis OasisSource);
如果你想要這個抽象類的所有兒童實行有自己Import
功能,否則實現的功能基本的抽象類,將其標記爲虛擬,以便孩子可以在必要時重寫。
0
類可以被分爲3類
1. Class
2. Abstract class
3. Interface
- 類只包含直接方法,即方法和它的主體還限定。類不支持多重繼承。
- 摘要既包含這種類型的身體較少的方法,我們需要通過繼承抽象類成基類來定義身體直接方法和抽象方法(即,沒有體的方法被稱爲抽象方法) ,和方法應當在被定義派生類。
- 接口僅包含抽象方法,並且應該在派生類上定義方法,如果基類還未定義方法體,那麼派生類也被視爲接口,最後這些方法應該在使用前定義。 接口支持多重繼承。
希望這可以幫助U,
0
這是一個沒有真正創建一個類來共享跨類的信息的一種方式。
如果你將永遠不會有一個需要特定的類實例化,但要提供一個可以供所有兒童使用成員和方法,使用抽象。
所以你的(子)類只會從抽象類繼承(擴展)。
考慮一下:
公司有員工
Some employees are engineers
Some employees work executives
所以,我們不希望員工有一個具體的(一個可以被實例化)類。讓我們創建一個摘要。
abstract class Employee
{
protected $employeeID='';
protected $annualSalary=NULL;
abstract protected function setEmployeeID();
abstract protected function setAnnualSalary();
public function getEmployeeID()
{
return $this->employeeID;
}
public function getAnnualSalary()
{
return $this->annualSalaryID;
}
}
class Engineer extends Employee
{
protected function setEmployeeID()
{
//read from db, etc.
}
protected function setAnnualSalary()
{
//beg HR for a raise
}
}
class Executive extends Employee
{
protected function setEmployeeID()
{
//read from super-special db, etc.
}
protected function setAnnualSalary()
{
//definitely a large number
}
}
相關問題
- 1. 如何使用抽象類
- 2. 使用抽象類中抽象類的引用抽象類c
- 3. 在抽象類中使用抽象類時如何實現抽象方法
- 4. 使用抽象類
- 5. 如何使用Espresso測試抽象類?
- 6. 如何使用圖形 - 抽象類
- 7. 如何使用C++返回抽象類
- 8. Java的如何使用抽象類
- 9. 如何用抽象類調用抽象函數
- 10. 如何在其他類(或任何類)中使用抽象類?
- 11. 使用抽象類方法
- 12. 使用抽象類ArrayList
- 13. 正確使用抽象類
- 14. C++使用抽象基類
- 15. 使用java抽象類
- 16. java使用抽象類
- 17. 如何定義抽象類
- 18. 如何抽象靜態類
- 19. 如何聚合抽象類?
- 20. 如何從抽象基類
- 21. 何時使用抽象類和接口?
- 22. 何時使用抽象類或接口?
- 23. 何時使用抽象類和接口
- 24. 抽象與抽象類
- 25. 抽象類非抽象方法調用
- 26. 如何在斯卡拉擴展一個抽象類,使用抽象構造
- 27. 如何使用抽象方法測試抽象類中的方法?
- 28. 如何使用Moq模擬包含內部抽象方法的抽象類?
- 29. 如何用ICompilationUnit來判斷抽象類
- 30. 如何用抽象類輸出
Nit:抽象類*可以(通常也是)也是基類。 – user2864740
所以它仍然是線性的,它不能分叉? – MilitaryG