Java | C# | C++ | Python | Visual Basic | |
---|---|---|---|---|---|
Object-Orientation | Hybrid | Hybrid | Hybrid / Multi-Paradigm | Hybrid | Partial Support |
Static / Dynamic Typing | Static | Static | Static | Dynamic | Static |
Generic Classes | No | No | Yes | N/A | No |
Inheritance | Single class, multiple interfaces | Single class, multiple interfaces | Multiple | Multiple | None |
Feature Renaming | No | No | No | No | No |
Method Overloading | Yes | Yes | Yes | No | No |
Operator Overloading | No | Yes | Yes | Yes | No |
Higher Order Functions | No | No | No | Lambda Expressions | No |
Lexical Closures | No | No | No | Yes (since 2.1) | No |
Garbage Collection | Mark and Sweep or Generational | Mark and Sweep or Generational | None | Reference Counting | Reference Counting |
Uniform Access | No | No | No | No | Yes |
Class Variables / Methods | Yes | Yes | Yes | No | No |
Reflection | Yes | Yes | No | Yes | No |
Access Control | public, protected, "package", private | public, protected, private, internal, protected internal | public, protected, private, "friends" | Name Mangling | public, private |
Design by Contract | No | No | No | No | No |
Multithreading | Yes | Yes | Libraries | Yes | No |
Regular Expressions | Standard Library | Standard Library | No | Standard Library | No |
Pointer Arithmetic | No | Yes | Yes | No | No |
Language Integration | C, some C++ | All .NET Languages | C, Assembler | C, C++, Java | C (via DCOM) |
Built-In Security | Yes | Yes | No | No? | No |