I honestly feel stupid having to ask this question but I think there's something wrong and I couldn't find the answer. In a project there are classes extending a generic super class without specifying the type. For example :
public abstract class Vehicle<T> {}
public class Car extends Vehicle {}
public class Van extends Vehicle {}
I'm pretty sure Java 7 used to give a compile error but the project I'm working on is using Java 8. Is this a new feature? How does the compiler know what is the actual type?