Those four languages all have completely different implementations of parameterized types, but calling them all “generics” doesn’t add any extra confusion.
To the contrary, it’s actually helpful to use the same word for something with roughly the same uses (eg generic type-safe container classes) even if the details are very different.