In Java, classes and methods may be declared abstract. Abstract classes may contain any number of concrete and abstract methods, but if a class contains one or more abstract methods then the class must be declared abstract. You can also define an interface, which is like an abstract class. Usually, interfaces only contain abstract methods and do not contain any fields.2.1 In an interface, methods are abstract by default.
In C++, abstract methods must be declared virtual. This also implies that the class is abstract, but you don't need to declare the class abstract. Unlike Java, C++ doesn't have interfaces. There is also no abstract keyword.