抽象类vs具体类
大多数流行的现代面向对象编程语言,如Java和c#,都是基于类的。它们通过使用类实现了面向对象的概念,如封装、继承和多态性。类是现实世界对象的抽象表示。类可以是具体的,也可以是抽象的,这取决于它们的方法功能的实现级别。一个具体的类完全实现了它的所有方法。抽象类可以被认为是常规(具体)类的有限版本,其中可能包含部分实现的方法。通常,具体类被称为(仅仅)类。
什么是具体班级?
默认类是一个具体类。class关键字用于定义类(例如在Java中)。通常它们被简单地称为类(没有形容词具体)。具体类描述了真实世界对象的概念表示。类有称为属性的属性。属性被实现为全局变量和实例变量。类中的方法表示或定义这些类的行为。类的方法和属性称为类的成员。通常,封装是通过将属性设置为私有,同时创建可用于访问这些属性的公共方法来实现的。对象是类的实例。 Inheritance allows the user to extend classes (called sub classes) from other classes (called super classes). Polymorphism allows the programmer to substitute an object of a class in place of an object of its super class. Typically, the nouns found in the problem definition directly become classes in the program. And similarly, verbs become methods. Public, private and protected are the typical access modifiers used for classes.
什么是抽象类?
抽象类使用Abstract关键字声明(例如在Java中)。通常,抽象类,也被称为抽象基类(ABC),不能被实例化(该类的实例不能被创建)。因此,抽象类只有在编程语言支持继承(从扩展类创建子类的能力)的情况下才有意义。抽象类通常表示部分实现或不实现的抽象概念或实体。因此,抽象类扮演父类的角色,派生出子类,因此子类将共享父类的不完整特性,并且可以添加功能来完成它们。
抽象类可以包含抽象方法。继承抽象类的子类可以实现这些(继承的)抽象方法。如果子类实现了所有这些抽象方法,它就成为一个具体类。但如果没有,子类也会变成一个抽象类。这一切意味着,当程序员将一个类指定为抽象类时,她是在说这个类将是不完整的,它将有需要由继承的子类完成的元素。这是在两个程序员之间创建契约的好方法,它简化了软件开发中的任务。编写代码来继承的程序员需要精确地遵循方法定义(当然也可以有自己的实现)。
抽象类和具体类的区别是什么?
抽象类通常有部分实现或没有实现。另一方面,具体类总是具有其行为的完整实现。与具体类不同,抽象类不能实例化。因此,为了使抽象类有用,必须对它们进行扩展。抽象类可以包含抽象方法,但具体类不能。当一个抽象类被扩展时,所有的方法(包括抽象的和具体的)都会被继承。继承的类可以实现任何或所有方法。如果所有的抽象方法都没有实现,那么这个类也会变成一个抽象类。
优说
优秀的文章! !祝你好运。