Simple categories are typically implemented as radio buttons or as a single-choice list. Subcategories are typically radio buttons, as well. If you are wanting to have subcategories be dependent on category choices, that's supported somewhat by dependencies.
A dependency of a subcategory upon a category field value makes it visible or not based on the value. So, as a category is set, the appropriate subcategories pop up and others hide, if dependencies are set up correctly.
Categories are also implemented sometimes as a Link to Entry field to a library of categories. Again, dependencies can be used upon category values to make subcategory selections visible.
Dependencies are not well documented in the wiki at this time. I'll try to rectify that shortly.