Person class --> When we write a constructor explicitly(in this case name,year) we are telling the users that if they want to create a Person object then name and year is mandatory.
Now another class Student extends Person....here we are adding the attribute major. As Student inherits attributes from Person it makes sense to say that if anyone wants to create a Student object then name,year and major is mandatory.
So with view to inheritance, it does not makes sense to say that the base class Person should be constructed with name and year but the subclass Student should be constructed with major.