Jak zrobić UPCASTING?

0

Witam, chciałbym zapytać, jak w tym projekcie zrobić upcasting?

Klasa abstrakcyjna:


namespace Laboratoriumnumer4
{
    public abstract class Pracownik
    {
        public String imie;
        public String nazwisko;
        public int staz;
        public int ocena;

        abstract public int obliczPremie(int staz);
    }
}

Dziedzicząca:

namespace Laboratoriumnumer4
{
    class Kierownik : Pracownik
    {
        int mnoznik = 500;
        public override int obliczPremie(int staz)
        {
            int premia = staz * mnoznik;
            return premia;
        }

        public Kierownik(String imie, String nazwisko, int staz, int ocena)
        {
            this.imie = imie;
            this.nazwisko = nazwisko;
            this.staz = staz;
            this.ocena = ocena;
        }
    }
}

Design:

namespace Laboratoriumnumer4
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            String imie = textBox1.Text;
            String nazwisko = textBox2.Text;
            int staz = Int32.Parse(textBox3.Text);
            int ocena = Int32.Parse(textBox4.Text);
            label1.Text = textBox1.Text + Environment.NewLine +
                textBox2.Text + Environment.NewLine + comboBox1.Text + Environment.NewLine +
                staz + Environment.NewLine + ocena;

            if (comboBox1.Text == "Kierownik")
            {
                Kierownik kierownik1 = new Kierownik(imie, nazwisko, staz, ocena);
                int a = kierownik1.obliczPremie(staz);
                label1.Text = "Premia kierownika = " + a.ToString();
            }
            else if (comboBox1.Text == "Sekretarka")
            {
                Sekretarka sekretarka1 = new Sekretarka(imie, nazwisko, staz, ocena);
                int b = sekretarka1.obliczPremie(staz);
                label1.Text = "Premia sekretarki = " + b.ToString();
            }
            else if (comboBox1.Text == "Informatyk")
            {
                Informatyk informatyk1 = new Informatyk(imie, nazwisko, staz, ocena);
                int c = informatyk1.obliczPremie(staz);
                label1.Text = "Premia informatyka = " + c.ToString();
            }
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void button2_Click(object sender, EventArgs e)
        {
            using (StreamWriter writer = new StreamWriter("pracownik.txt", true))
            {

                writer.WriteLine(textBox1.Text + "\n");
                writer.WriteLine(textBox2.Text + "\n");
                writer.WriteLine(textBox3.Text + "\n");
                writer.WriteLine(textBox4.Text + "\n");
                writer.WriteLine(label1.Text + "\n");

            }
            button3.Enabled = true;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            using (StreamReader reader = new StreamReader("pracownik.txt", true))
            {

                string line;
                while ((line = reader.ReadLine()) != null)
                {
                    textBox5.Text += " \n" + line + " \n";
                }

            }
        }
    }
}
0

moze napisz co chcesz osiagnac. Bo przyznam sie szczerze, ze nie widze tutaj zadnego powodu by uzywac upcasting

0

Prowadząca na laboratorium mowi, ze mam zrobic upcasting, tez nie wiem po co...

0
class Employee
{
    // some code
}

class Manager : Employee
{
    //some code
}

Manager mgr = new Manager();
Employee emp = (Employee)mgr;

tu masz przyklad upcasting. Zalezy gdzie mialbyc uzyty (z tego co napisales nie wynika nic)

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0