
using fbblTipi;

namespace fbblSchemaAziendale
{
    public class Indirizzo : Nominativo
    {

        private string Via;
        private string Numero;
        private string Citta;
        private string Cap;
        private string Provincia;

        public Indirizzo(string Nome,string Cognome,string Sesso,string Via, string Numero, string Citta, string Cap, string Provincia)
            :base(Nome,Cognome,Sesso)
        {
            this.Via = Via;
            this.Numero = Numero;
            this.Citta = Citta;
            this.Cap = Cap;
            this.Provincia = Provincia;
        }

        public string get_Via()
        {
            return this.Via;
        }

        public string get_Numero()
        {
            return this.Numero;
        }

        public string get_Citta()
        {
            return this.Citta;
        }

        public string get_Cap()
        {
            return this.Cap;
        }

        public string get_Provincia()
        {
            return this.Provincia;
        }

        // Con l'operatore new posto davanti alla funzione membro, faccio in modo che la
        // funzione membro pubblica della classe Nominativo ereditata da questa classe,
        // venga nascosta: FUNCTION HIDING.
        // In poche parole la funzione c'è ma "non si vede...."

        new public Liste stampa()
        {
            Liste MiaLista=base.stampa(); // eseguo la stampa della classe padre Nominativo

            MiaLista.ListaDiStringhe.Add(this.get_Via());
            MiaLista.ListaDiStringhe.Add(this.get_Numero());
            MiaLista.ListaDiStringhe.Add(this.get_Citta());
            MiaLista.ListaDiStringhe.Add(this.get_Cap());
            MiaLista.ListaDiStringhe.Add(this.get_Provincia());

            return MiaLista;

        }


    }
}
