Is there anything like this in C++?
Depends on what level of similarity you're looking for and where you're looking for it.
The Java collection interfaces are based on runtime polymorphism. In C++ terms, such API is based on inheritance and virtual member functions.
The containers provided by the standard library serve a similar function as the collections in Java. However, they do not provide an API based on inheritance and virtual member functions. Instead, their API is based on compile time polymorphism i.e. templates which are somewhat similar to generics in Java. In the analogy of Java collections and C++ standard containers, the concepts aka named requirements specified in the standard are analogous to the interfaces in Java.
It is possible to implement interfaces - such as they are in Java - in C++. The C++ equivalents are simply abstract classes with no non-pure member functions. You must use virtual inheritance in order to share bases in the way that you can share interfaces in Java. It is also possible to implement a container API based on runtime polymorphism. But such container API is not provided by the standard library.
I'm trying to make a doubly linked list in C++
Other than for exercise purposes you rarely need to, because the standard library already comes with an implementation of double linked list. It's the std::list
whose reference page you've linked in the question.
and I'm trying to do it right.
"Right" is relative, but you'll likely do fine by copying what the standard library does.
If you do wish to follow the example shown by the standard library, then you should provide an API based on concepts (aka named requirements) and templates. Your class (template) should conform to the Container concept, and more specifically the SequenceContainer concept.