The part after the single colon is called an initialization list. They allow you to set values for members even before the constructor is called. For more explanations:
http://stackoverflow.com/questions/4589237/c-initialization-lists
virtual method(parameters) = 0;
This declares a pure virtual function, as opposed to a regular virtual function. Pure virtual functions are declared in base classes. Their effect is that every child class is required to implement this function. It can choose the implementation, but it has to be defined. This gives you a way to define a contract between a base and a child class, saying "you can only derive from me if you implement this function".