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";
}
}
}
}
}