Advertisement
cuniszkiewicz

AbstactClassWorker

Apr 18th, 2024
640
0
16 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.53 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace abstractClass_06_06_2017
  8. {
  9.     class Program
  10.     {
  11.         interface IWorker
  12.         {
  13.             string Name { get; set; }
  14.             string Surname { get; set; }
  15.             void SetSalary(int a);
  16.             void PaySalary();  
  17.         }
  18.         interface IManager
  19.         {
  20.             int ManagerAdd { get; set; }
  21.         }
  22.         abstract class Worker : IWorker
  23.         {
  24.             private string _name;
  25.             private string _surname;
  26.             private int _salary;
  27.  
  28.  
  29.             public string Name
  30.             {
  31.                 get { return _name; }
  32.                 set { _name = value; }
  33.             }
  34.             public string Surname
  35.             {
  36.                 get { return _surname; }
  37.                 set { _surname = value; }
  38.             }
  39.             public int Salary
  40.             {
  41.                 get { return _salary; }
  42.                 set
  43.                 {
  44.                     if (value > 0)
  45.                         _salary = value;
  46.                     else
  47.                         _salary = 2000;
  48.                 }
  49.             }
  50.  
  51.             public void SetSalary(int p = 2000) { Salary = p; }
  52.             public virtual void PaySalary() { Console.Write($"Salary to pay: {Salary} zł"); }
  53.  
  54.             protected Worker()
  55.             {
  56.                 SetSalary();
  57.             }
  58.         }
  59.  
  60.         class Manager : Worker, IWorker, IManager
  61.         {
  62.             private int _managerAdd;
  63.             private int _monthlyBonus;
  64.             public int ManagerAdd
  65.             {
  66.                 get { return _managerAdd; }
  67.                 set
  68.                 {
  69.                     if (value > 0)
  70.                         _managerAdd = value;
  71.                     else
  72.                         _managerAdd = 2000;
  73.                 }
  74.             }
  75.             public int MonthlyBonus
  76.             {
  77.                 get { return _monthlyBonus; }
  78.                 set
  79.                 {
  80.                     if (value > 0)
  81.                         _monthlyBonus = value;
  82.                     else
  83.                         _monthlyBonus = 1000;
  84.                 }
  85.             }
  86.             public override void PaySalary()
  87.             {
  88.                 Console.WriteLine($"Salary to pay: {Salary + ManagerAdd + MonthlyBonus} zł");
  89.             }
  90.             public Manager()
  91.             {
  92.                 ManagerAdd = 2000;
  93.                 MonthlyBonus = 1000;
  94.             }
  95.  
  96.         }
  97.  
  98.         class Seller : Worker
  99.         {
  100.             private int _monthlyBonus;
  101.             public int MonthlyBonus
  102.             {
  103.                 get { return _monthlyBonus; }
  104.                 set
  105.                 {
  106.                     if (value > 0)
  107.                         _monthlyBonus = value;
  108.                     else
  109.                         _monthlyBonus = 500;
  110.                 }
  111.             }
  112.             public override void PaySalary()
  113.             {
  114.                 base.PaySalary();
  115.                 Console.Write($" and additional {MonthlyBonus} zł monthly bonus");
  116.             }
  117.             public Seller()
  118.             {
  119.                 MonthlyBonus = 500;
  120.             }
  121.         }
  122.  
  123.         static void Main(string[] args)
  124.         {
  125.  
  126.            
  127.             Manager manager = new Manager()
  128.             manager.PaySalary();
  129.             Seller seller = new Seller();
  130.             seller.PaySalary();
  131.  
  132.             Console.ReadKey();
  133.         }
  134.     }f
  135. }
  136.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement