Ship naming has as many exceptions as it has rules of its history.
The term "capital ships" comes for vessels of a size and rarity to be named after national or State Capitals.
The US pattern, for the first half of the 20th century at least, was rather elegant.
Battleships, the heaiest of the heavy, were named for States, so that allowed for 45-48 at a time.
Heavy Cruisers were named for large cities, often State Capital cities, or for cities of historical significance--Lexington, Saratoga, etc. This allowed for 60-75 ships.
Light Cruisers were named after notable cities, so this allowed for about 100.
Destroyers, once the world got around to naming them, were named for significant Naval figures, CNOs being much featured. This allowed for 300-400 ships.
Submarines, once they were named, were named after fish. Which allowed for untold numbers of boats.
Aircraft carriers and Amphibious warefare ships picked up a pattern of being named for notable battles.
Now, all that is pretty much chunked out the window in 1947. Heavily spurred on by the fact that the USN commissioned over 50 aircraft carriers during the war, and followed no convention at all in naming them (to this day, arguments rage over whether USS Franklin was named for Benjamin, the Battle of (in Tennesse), or the city in Massachusetts).
The rise of the nuclear submarine further muddied the waters. The boomers (blasitic missle boats) were orginially named after war leaders. Which would have allowed for more than a few such boats.
For a very brief while, there was some sanity. SSNs were named after cities; SSBNs and CGNs were named after States; Amphibs (generally) named for famous island campaigns or for previously famous naval vessels. Even that was more exception than rule--last 4 CGNs were Virginia, California, Texas, and Truxton (a former CNO of some note).
After the debacle with USS City of Corpus Cristi (religious leaders required the "City of"), SSNs went back to fish.