抽象类与具体类
大多数流行的现代面向对象编程语言(如Java和C)都是基于类的。它们通过类的使用来实现封装、继承、多态等面向对象的概念。类是现实世界对象的抽象表示。类可以是具体的,也可以是抽象的,这取决于其方**能的实现级别。一个具体的类完全实现了它的所有方法。抽象类可以被视为常规(具体)类的有限版本,其中它可能包含部分实现的方法。通常,具体类被称为(仅仅)类。
什么是混凝土班?
默认类是一个具体类。class关键字用于定义类(例如在Java中)。通常它们被简单地称为类(没有形容词concrete)。具体类描述真实世界对象的概念表示。类具有称为属性的属性。属性被实现为全局变量和实例变量。类中的方法表示或定义这些类的行为。类的方法和属性称为类的成员。通常,封装是通过使属性私有化来实现的,同时创建可用于访问这些属性的公共方法。对象是类的实例。继承允许用户从其他类(称为超级类)扩展类(称为子类)。多态性允许程序员用一个类的对象代替它的超类的对象。通常,在问题定义中找到的名词直接成为程序中的类。同样,动词变成了方法。Public、private和protected是类的典型访问修饰符。
什么是抽象类?
抽象类使用Abstract关键字声明(例如在Java中,)。通常,抽象类,也称为抽象基类(ABC),不能实例化(不能创建该类的实例)。因此,只有当编程语言支持继承(通过扩展类创建子类的能力)时,抽象类才有意义。抽象类通常表示一个抽象的概念或实体,有部分实现或没有实现。因此,抽象类充当从中派生子类的父类,这样子类将共享父类的不完整特性,并且可以添加功能来完成它们。
抽象类可以包含抽象方法。扩展抽象类的子类可以实现这些(继承的)抽象方法。如果子类实现了所有这样的抽象方法,它将成为一个具体类。但如果不是这样,子类也会变成抽象类。所有这一切意味着,当程序员指定一个类作为一个抽象类时,她是说这个类将是不完整的,它将有需要继承子类完成的元素。这是在两个程序员之间创建契约的好方法,它简化了软件开发中的任务。编写代码来继承的程序员需要严格遵循方法定义(当然也可以有自己的实现)。
抽象类和具体类有什么区别?