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