diff --git a/Tool/src/ElectricTool.cs b/Tool/src/ElectricTool.cs index e8a5310..e0904ba 100644 --- a/Tool/src/ElectricTool.cs +++ b/Tool/src/ElectricTool.cs @@ -1,7 +1,7 @@ /// /// Электрический инструмент для косьбы /// -public class ElectricTool : Tool +public abstract class ElectricTool : Tool { /// /// Мощность электроинструмента diff --git a/Tool/src/Lawnmower.cs b/Tool/src/Lawnmower.cs index 3514344..e695457 100644 --- a/Tool/src/Lawnmower.cs +++ b/Tool/src/Lawnmower.cs @@ -57,4 +57,14 @@ public class Lawnmower : ElectricTool { _fuelLevel = _fuelCapacity; } + + public override object Clone() + { + var lawnmower = new Lawnmower(Name, Material, Weight, Power, FuelCapacity) + { + _fuelLevel = FuelLevel + }; + + return lawnmower; + } } \ No newline at end of file diff --git a/Tool/src/ManualTool.cs b/Tool/src/ManualTool.cs index 9499298..768000b 100644 --- a/Tool/src/ManualTool.cs +++ b/Tool/src/ManualTool.cs @@ -1,7 +1,7 @@ /// /// Ручной инструмент для косьбы /// -public class ManualTool : Tool +public abstract class ManualTool : Tool { /// /// Длина рукояти ручного инструмента в метрах diff --git a/Tool/src/Scissors.cs b/Tool/src/Scissors.cs index 4b376a7..27546bb 100644 --- a/Tool/src/Scissors.cs +++ b/Tool/src/Scissors.cs @@ -78,4 +78,9 @@ public class Scissors : ManualTool return accuracy; } + + public override object Clone() + { + return new Scissors(Name, Material, Weight, HandleLength, BladeSize); + } } diff --git a/Tool/src/Scythe.cs b/Tool/src/Scythe.cs index 1987fdf..c521ca3 100644 --- a/Tool/src/Scythe.cs +++ b/Tool/src/Scythe.cs @@ -36,4 +36,9 @@ public class Scythe : ManualTool { _bladeType = parNewBladeType; } + + public override object Clone() + { + return new Scythe(Name, Material, Weight, HandleLength, BladeType); + } } diff --git a/Tool/src/Tool.cs b/Tool/src/Tool.cs index de612fb..14ad864 100644 --- a/Tool/src/Tool.cs +++ b/Tool/src/Tool.cs @@ -2,7 +2,7 @@ /// /// Инструмент для косьбы /// -public class Tool +public abstract class Tool : ICloneable { /// /// Уникальный идентификатор инструмента @@ -72,4 +72,6 @@ public class Tool { return $"Инструмент: {Name}, Материал: {Material}, Вес: {Weight}"; } + + public abstract object Clone(); } diff --git a/Tool/src/Trimmer.cs b/Tool/src/Trimmer.cs index 5339eb7..75a0d73 100644 --- a/Tool/src/Trimmer.cs +++ b/Tool/src/Trimmer.cs @@ -35,4 +35,14 @@ public class Trimmer : ElectricTool { _mode = parMode; } + + public override object Clone() + { + var trimmer = new Trimmer(Name, Material, Weight, Power) + { + _mode = Mode + }; + + return trimmer; + } } \ No newline at end of file