First of all, the base class is *NOT* being used as an "identifier".
The only identifier in there (either version) is "customer".
As to why declare the variable as the base class: Since I don't have the book, I can't tell for sure, but *probably* because the author(s) are going to demonstrate polymorphism. That is, they are going to have some other code that takes an instance of the base class--not the derived class--so why declare the variable as an instance of the derived class??
Oh, more than likely the code will work either way. That is, if there is a function that takes GenericCustomer as an argument, it would of course take a variable declared as Nevermore60Customer as the argument. But unless you *need* some characteristic of Nevermore60Customer, it really makes no difference.
In "real life" code, you would probably be more likely to see code that looks like this:
Code:
GenericCustomer customer = functionThatMightReturnAnyClassDerivedFromGenericCustomer("Arabel");
So I think the author(s) are just illustrating the point that you can always assign an instance of a derived class to a variable declared to be of the type of the base class.