В этом конкретном примере не будет большой разницы.В реальной жизни метод setSSN
, вероятно, должен выглядеть примерно так:
protected void setSSN(int SSN) throws InvalidSSNException {
// check that the given SSN is valid
// ...
socialSecurityNumber = ssn;
}
Это позволяет базовому классу гарантировать, что он содержит только действительные номера SSN.Базовый класс не может гарантировать, что если поле защищено.