i bet the internal age variable is protected it's always accessible to anything that inherits i can understand making getAge() protected or private, but there should definitely be a public isLegal() function