/// <summary>
        /// przeciazenie metody
        /// przesloniecie metody wirtualnej WypiszPracownika z klasy bazowej Pracownik za pomoca override - polimorfizm
        /// </summary>
        /// <param name="pracProd"></param>
        /// <returns></returns>
        public override string WypiszPracownika(PracownikProdukcja pracProd)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(base.WypiszPracownika(pracProd));//odwolanie do klasy bazowej Pracownik i jej metody wirtualnej WypiszPracownika(PracownikProdukcja pracownik)
            sb.AppendLine(", ");
            sb.Append("Godz pracy: ");
            sb.Append(pracProd.GodzinyPrzepracowane);
            return(sb.ToString());
        }
Beispiel #2
0
        private void btDodajPracownika_Click(object sender, EventArgs e)
        {
            #region Pracownik            
            dt.Clear();
            methodsPracownik.AddColumnToDataTable(dt);//tworzenie obiektu DataTable

            Pracownik pracownik1 = new Pracownik( "Kowalski", "Jan", 1970, "*****@*****.**", "12345678900");//tworzenie obiektu Pracownik za pomoca konstruktora
            methodsPracownik.AddRowPracownik(pracownik1, dt);//dodanie do DataTable nowego wiersza z danymi
            Pracownik pracownik2 = new Pracownik { Nazwisko = "Nowak", Imie = "Stefan", Mail = "*****@*****.**", RokUrodzenia = 1991, Telefon = "12345556711" };//tworzenie obiektu Pracownik za pomoca konstruktora - inny sposob
            methodsPracownik.AddRowPracownik(pracownik2, dt);//dodanie do DataTable nowego wiersza z danymi
            dataGridView1.DataSource = dt;//polaczenie danych o pracownikach z obiektem dataGridView - wyswietlenie danych

            //pracownik1.
            #endregion

            #region pracownikProdukcja
            //operacje dla klasy PracownikProdukcja - dodawanie za pomoca konstruktora
            PracownikProdukcja pp1 = new PracownikProdukcja { Dzial = "Pakownia", GodzinyPrzepracowane = 16, Imie = "Edward", Nazwisko = "Smiały", Mail = "*****@*****.**", RokUrodzenia = 1966, StawkaZaGodzine = 22.5, Telefon = "345678234" };

            //operacje dla klasy PracownikProdukcja - dodawanie za pomoca przypisania do wlasciwosci z klasy PracownikProdukcja oraz z klasy po ktorej jest dziedziczenie tj Pracownik
            PracownikProdukcja pp2 = new PracownikProdukcja();
            pp2.Nazwisko = "Falkowski";
            pp2.Imie = "Piotr";
            pp2.StawkaZaGodzine = 27.55;
            pp2.GodzinyPrzepracowane = 32;
            pp2.Dzial = "Magazyn";
            pp2.Mail = "*****@*****.**";
            pp2.RokUrodzenia = 1982;
            pp2.Telefon = "232343232";

            //realizacja interfejsu z IPracownik
            pp1.Wynagrodzenie(pp1.GodzinyPrzepracowane, pp1.StawkaZaGodzine);
            pp2.Wynagrodzenie(0, 0);

            //przyklad przeciazenia metod WypiszPracownika
            label1.Text = pp1.WypiszPracownika(pracownik1);//metoda z polimorfizmu WypiszPracownika(Pracownik pracownik)
            label2.Text = pp1.WypiszPracownika(pp1);//metoda z polimorfizmu WypiszPracownika(PracownikProdukcja pracProd)
            label3.Text = pracownik1.PodajRokUrodzeniaPracownika(pracownik2).ToString();//metoda z klasy abstrakcyjnej AbstractClass zdefiniowana w klasie Pracownik

            PracownikProdukcja pp3 = new PracownikProdukcja();
            //wywolanie metody NIE abstrakcyjnej DodajWynagrodzeniaPracownikow z klasy abstrakcyjnej AbstractClass
            label4.Text = pp3.DodajWynagrodzeniaPracownikow(pp1, pp2).ToString();

            //MessageBox.Show(pracownik1.ID + "\n" + pracownik2.ID, "ID Pracownikow");
            #endregion

            //Singleton sing1 = new Singleton();//błąd !!!
            //sing1.DoSomething();//błąd !!!
            //Singleton.InstancjaStaticProperties.DoSomething(5);
            
        }
Beispiel #3
0
        /// <summary>
        /// przeciazenie metody wirtualnej - którą możemy na nowo zdefiniowac w klasie pochodnej od klasy Pracownik za pomocą override - polimorfizm
        /// </summary>
        /// <param name="pracownik"></param>
        /// <returns></returns>
        public virtual string WypiszPracownika(PracownikProdukcja pracownik)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("Nazwisko: ");
            sb.Append(pracownik.Nazwisko);
            sb.Append(", ");
            sb.Append("Imie: ");
            sb.Append(pracownik.Imie);
            sb.AppendLine(", ");
            sb.Append("Dzial: ");
            sb.Append(pracownik.Dzial);
            return(sb.ToString());
        }
Beispiel #4
0
 //metoda nie abstrakcyjna z cialem w klasie abstrakcyjnej
 public double DodajWynagrodzeniaPracownikow(PracownikProdukcja pracProdukcja1, PracownikProdukcja pracProdukcja2)
 {
     return(pracProdukcja1.PodajWynagrodzeniePracownika(pracProdukcja1) + pracProdukcja2.PodajWynagrodzeniePracownika(pracProdukcja2));
 }
Beispiel #5
0
 protected abstract double PodajWynagrodzeniePracownika(PracownikProdukcja pracProdukcja);
 /// <summary>
 /// przeciazenie metody
 /// przesloniecie metody wirtualnej WypiszPracownika z klasy bazowej Pracownik za pomoca override - polimorfizm
 /// </summary>
 /// <param name="pracProd"></param>
 /// <returns></returns>
 public override string WypiszPracownika(PracownikProdukcja pracProd)
 {
     StringBuilder sb = new StringBuilder();
     sb.Append(base.WypiszPracownika(pracProd));//odwolanie do klasy bazowej Pracownik i jej metody wirtualnej WypiszPracownika(PracownikProdukcja pracownik)
     sb.AppendLine(", ");
     sb.Append("Godz pracy: ");
     sb.Append(pracProd.GodzinyPrzepracowane);
     return sb.ToString();
 }
Beispiel #7
0
 //metoda nie abstrakcyjna z cialem w klasie abstrakcyjnej
 public double DodajWynagrodzeniaPracownikow(PracownikProdukcja pracProdukcja1,PracownikProdukcja pracProdukcja2)
 {
     return pracProdukcja1.PodajWynagrodzeniePracownika(pracProdukcja1) + pracProdukcja2.PodajWynagrodzeniePracownika(pracProdukcja2);
 }
Beispiel #8
0
 protected abstract double PodajWynagrodzeniePracownika(PracownikProdukcja pracProdukcja);
Beispiel #9
0
 /// <summary>
 /// przesloniecie(realizacja) metody abstrakcyjnej z klasy bazowej  AbstractClass
 /// </summary>
 /// <param name="pracProdukcja"></param>
 /// <returns></returns>
 protected override double PodajWynagrodzeniePracownika(PracownikProdukcja pracProdukcja)
 {
     return(pracProdukcja.Wynagrodzenie(pracProdukcja.GodzinyPrzepracowane, pracProdukcja.StawkaZaGodzine));
 }
Beispiel #10
0
 /// <summary>
 /// przesloniecie(realizacja) metody abstrakcyjnej z klasy bazowej  AbstractClass
 /// </summary>
 /// <param name="pracProdukcja"></param>
 /// <returns></returns>
 protected override double PodajWynagrodzeniePracownika(PracownikProdukcja pracProdukcja)
 {
     return pracProdukcja.Wynagrodzenie(pracProdukcja.GodzinyPrzepracowane, pracProdukcja.StawkaZaGodzine);
 }
Beispiel #11
0
 /// <summary>
 /// przeciazenie metody wirtualnej - którą możemy na nowo zdefiniowac w klasie pochodnej od klasy Pracownik za pomocą override - polimorfizm
 /// </summary>
 /// <param name="pracownik"></param>
 /// <returns></returns>
 public virtual string WypiszPracownika(PracownikProdukcja pracownik)
 {
     StringBuilder sb = new StringBuilder();
     sb.Append("Nazwisko: ");
     sb.Append(pracownik.Nazwisko);
     sb.Append(", ");
     sb.Append("Imie: ");
     sb.Append(pracownik.Imie);
     sb.AppendLine(", ");
     sb.Append("Dzial: ");
     sb.Append(pracownik.Dzial);
     return sb.ToString();
 }