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. Java的如何使用抽象类
- 5. 如何使用Espresso测试抽象类?
- 6. 如何在其他类(或任何类)中使用抽象类?
- 7. 使用抽象类方法
- 8. C++使用抽象基类
- 9. 正确使用抽象类
- 10. 使用java抽象类
- 11. java使用抽象类
- 12. 如何从抽象基类
- 13. 如何抽象静态类
- 14. 如何定义抽象类
- 15. 何时使用抽象类和接口?
- 16. 何时使用抽象类和接口
- 17. 何时使用抽象类或接口?
- 18. 抽象与抽象类
- 19. 如何使用Moq模拟包含内部抽象方法的抽象类?
- 20. 如何在斯卡拉扩展一个抽象类,使用抽象构造
- 21. 如何使用抽象方法测试抽象类中的方法?
- 22. 如何嘲笑通用抽象类
- 23. 如何用ICompilationUnit来判断抽象类
- 24. 如何用抽象类输出
- 25. 如何用泛型扩展抽象类?
- 26. 如何表示抽象类的用法?
- 27. 从非抽象类派生抽象类
- 28. 抽象类和非抽象超类
- 29. 抽象基类的抽象子类
- 30. 使用虚拟类型(抽象类型)
Nit:抽象类*可以(通常也是)也是基类。 – user2864740
所以它仍然是线性的,它不能分叉? – MilitaryG