###Answer

 - For practical purposes he was **Kshatriya**
 - Considering his adoptive parents, he was **Shudra** or lower ranked Kshatriya
 - In theory, he was of **Karna** class itself (could be a special subclass or identity)

###Theory

His actual name was "Vasusena" or "RAdheya", after his adoptive mother "Radha". 
> And seeing the child furnished with bright mail and golden ear-rings, the twice-born ones named him Vasusena.  [[source]](http://www.sacred-texts.com/hin/m03/m03307.htm)

However, it's noted (at least in BRC Mahabharata) that Bhishma [& possibly Vidura] knew the correct identity of RAdheya already. For experienced & knowledgeable person like them, it would have been easy to match his attributes with his biological mother Kunti, whose other sons were 5 PAndavas.  
My assumption is that, Karna would have possibly named so by such dignitaries only.

###Logic

As discussed in [this answer](https://hinduism.stackexchange.com/a/19310/1049), Kunti herself was adopted by her father. Her biological father Sura was from the *Vaishya* class.

Kunti was married to the king PAndu, who was from Kshatriya class. Hence all her sons, were considered *PAndava*-s:

 - Vasusena/RAdheya -- who was abandoned by her before marriage, and adopted by Adhiratha & RAdha
 - Yudhishthira, Arjuna, Bhima -- her biological children
 - Nakula, Sahadeva -- children adopted by Kunti, after the death of her biological mother MAdri

A child born to a Kshatriya (PAndu) and a Vaishya (Kunti) is considered as "Karna". This was applied to Yuyutsu.

> During that year, O king, was begotten upon her by the illustrious Dhritarashtra a son endued with great intelligence who was afterwards named Yuvutsu. And **because he was begotten by a Kshatriya upon a Vaisya woman, he came to be called Karna**. [Above linked answer]

###Notes

Usually a son carries his biological father's class. However in the case of Niyoga, the son carries his adoptive father's class. With that logic, Yudhishtira, Bhima, Arjuna could also be considered "Karna"-s, to be precise. Because all of them were born to Kunti from certain celestial deity.

If we consider that, Kunti's class was changed to Kshatriya after her adoption, then all PAndava-s were Kshatriya-s.  
Karna specifically always recognised himself with his adoptive parents, as discussed [in this answer](https://hinduism.stackexchange.com/a/14173/1049) hence he was considered at lower ranks of Kshatriya-s.