I've gotten the impression that C is non-object-oriented, C++ is object-oriented and C# is object-managing (even more top-down than OOPs), whereas Java is merely inspired from C and C++ to create an easier to learn and use language that uses basic programming with simplified object-orientation. Is this true?
You can write OO code in C, but yes, it's not designed as an OOP language. C++ is also also a multi-paradigm, designed specifically for OOP, but also allowing for functional, imperative/procedural, meta-programming, etc...
Java was inspired by C++, but was designed to be easier to use (largely by obfuscating pointers, and providing a large standard library
), much more focussed on OOP (with the silly demands that everything must be a class and functions are overridable by default
) and to be much more portable, paired with a VM and byte-code format that supposedly lets you "write once, run anywhere".
C# was born out of Microsoft's Java implementation - they started modifying Java in breach of their licensing agreement, and thus were sued and barred from distributing Java. So their modified version of Java disappeared, and suddenly C# appeared, which is very much inspired by both Java and C++.
IMHO (i.e. very much personal feelings, not objective facts
) C# started out as being a shoddy clone of Java, but the current version has far surpassed it.