почему при переопределении методов нужно сделать public ? В родительских их нет