In computer science's object-oriented programming, a concrete class is a class for which entities (instances) may be created. These contrast with abstract classes which can not be instantiated because they have not been completely defined yet.

Example in C++

class Abstract {

public:

     virtual void MyVirtualMethod() = 0;

};

class Concrete : public Abstract {

public:

     void MyVirtualMethod()
     {
      //do something
     }
};

An object of class Abstract can not be created because the function MyVirtualMethod has not been defined ( the =0 is C++ syntax for the a pure virtual function, a function that must be part of any (derived) class but is not defined in the base class. The Concrete class is a concrete class because it's functions (in this case, only one function) have been declared and implemented.

See also