#What is the difference between Java abstract class and interface?
1. Abstract classes can provide partial implementation of certain methods, but interfaces cannot;
2. Abstract classes are a single inheritance mechanism, and their subclasses do not necessarily have to implement the parent All unimplemented methods in the class, and interfaces. A class can have multiple interfaces, and the methods must be implemented.
Understanding abstract classes
abstractclass and interface are both used to create abstract classes in the Java language (the abstract class in this article It is not translated from abstractclass, it represents an abstract body, and abstractclass is a method used to define abstract classes in the Java language. Please pay attention to the distinction). So what is an abstract class? Using abstract classes can What benefits do we bring?
In the object-oriented concept, we know that all objects are represented by classes, but the reverse is not true. Not all classes are used to describe objects. If a class does not contain enough information to describe a specific object, such a class is an abstract class. Abstract classes are often used to represent abstract concepts that we derive from analysis and design of problem areas. They are abstractions from a series of specific concepts that look different but are essentially the same. For example: If we develop a graphics editing software, we will find that there are some specific concepts such as circles and triangles in the problem domain. They are different, but they all belong to the concept of shape. The concept of shape is different in the problem domain. If it exists, it is an abstract concept. It is precisely because abstract concepts do not have corresponding concrete concepts in the problem domain, so the abstract classes used to represent abstract concepts cannot be instantiated.
In the object-oriented field, abstract classes are mainly used for type hiding. We can construct an abstract description of a fixed set of behaviors, but this set of behaviors can have any number of possible concrete implementations. This abstract description is the abstract class, and this set of any possible concrete implementations is represented by all possible derived classes. Modules can operate on an abstract body. Because a module relies on a fixed abstraction, it cannot be modified; at the same time, the behavior of this module can also be extended by deriving from this abstraction. Readers who are familiar with OCP must know that in order to achieve one of the core principles of object-oriented design, OCP (Open-ClosedPrinciple), abstract classes are the key.
Recommended tutorial: "Java Tutorial"
The above is the detailed content of What is the difference between Java abstract classes and interfaces?. For more information, please follow other related articles on the PHP Chinese website!