Home  >  Article  >  Java  >  What are the differences between abstract classes, ordinary classes and interfaces in Java?

What are the differences between abstract classes, ordinary classes and interfaces in Java?

王林
王林forward
2019-11-27 14:27:234950browse

What are the differences between abstract classes, ordinary classes and interfaces in Java?

Abstract class:

If there is an abstract method in a class, the class becomes an abstract class.

The class in the abstract class must be preceded by the abstract modifier.

Abstract classes can have ordinary methods or abstract methods, and the number of abstract methods can be 0 or multiple.

The subclass inherits the parent class and must rewrite all abstract methods, unless this class also becomes an abstract class.

Free online learning video recommendation: java online learning

Interface:

On the surface, the interface is a special An abstract class, but a class is a class and an interface is an interface, which is a parallel relationship.

All methods in the interface must be abstract. (Interfaces are allowed to define non-abstract methods after 1.8)

The method definition in the interface defaults to the public abstract type, and the member variables default to the public static final type. (If omitted, the system will complete it by default).

The difference between abstract classes and ordinary classes:

A class that contains abstract methods is called an abstract class, but it does not mean that there can only be abstract methods in abstract classes. Like ordinary classes, they can also have member variables and ordinary member methods.

The difference between abstract classes and ordinary classes is as follows:

The access modifiers of abstract methods must be public and protected.

Abstract classes cannot be instantiated.

If a class inherits from an abstract class, the subclass must implement the abstract method of the parent class. If the subclass does not implement the abstract method of the parent class, the subclass must also be an abstract class.

The difference between abstract classes and interfaces:

A class can only inherit one abstract class, while a class can implement multiple interfaces.

Abstract classes can have constructors, but interfaces cannot have constructors.

There can be member variables in abstract classes, but there are no member variables in interfaces. (Modified by final and turned into a constant)

There can be ordinary methods in abstract classes, but all methods in interfaces must be abstract. (Interfaces are allowed to define non-abstract methods after 1.8)

The access type of abstract methods in abstract classes can be public, protected, but the access type of abstract methods in interfaces It can only be public, and the default is public abstract (if omitted, it will be automatically completed by default).

Member variables in abstract classes can be of various types, while member variables in interfaces can only be of type public static final.

Abstract classes can have static code blocks and static methods, but interfaces cannot contain static code blocks and static methods.

If you want to learn more related articles and tutorials, please visit: Java language introduction

The above is the detailed content of What are the differences between abstract classes, ordinary classes and interfaces in Java?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:csdn.net. If there is any infringement, please contact admin@php.cn delete