1) Any type except for the C# built-in types such as int, bool, and string
2) Any class that is not marked as sealed
3) Any struct or class that is not marked as sealed
4) Any class