1, the use of the interface is through the keyword implements. The use of abstract classes is through the keyword extends. Of course the interface can also be inherited by the keyword extends.
2. You cannot declare member variables (including class static variables) in an interface, but you can declare class constants. Abstract classes can declare various types of member variables to implement the encapsulation of data. (The member variables in the Java interface are declared as public static final type)
3, interfaces do not have constructors, abstract classes can have constructors.
4, the method in the interface is the public type by default, and the methods in the abstract class can be decorated with private,protected,public.
5. A class can implement multiple interfaces at the same time, but a class may inherit only one abstract class.
An abstract class or an interface.
- If you are creating a model, this model will be used by some closely related objects, and you can use abstract classes. The interface is used if you want to create features that will be used by some unrelated objects.
- If the behavior must be inherited from multiple sources, the interface is used.
- If you know that all classes share a common behavior implementation, use an abstract class and implement that behavior in it.
PHP's abstract class, interface differences and choices