1
0

Tool: implement ICloneable

This commit is contained in:
2024-05-14 22:16:01 +03:00
parent 9b36311449
commit 81b1c8d946
7 changed files with 35 additions and 3 deletions

View File

@@ -1,7 +1,7 @@
/// <summary>
/// Электрический инструмент для косьбы
/// </summary>
public class ElectricTool : Tool
public abstract class ElectricTool : Tool
{
/// <summary>
/// Мощность электроинструмента

View File

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

View File

@@ -1,7 +1,7 @@
/// <summary>
/// Ручной инструмент для косьбы
/// </summary>
public class ManualTool : Tool
public abstract class ManualTool : Tool
{
/// <summary>
/// Длина рукояти ручного инструмента в метрах

View File

@@ -78,4 +78,9 @@ public class Scissors : ManualTool
return accuracy;
}
public override object Clone()
{
return new Scissors(Name, Material, Weight, HandleLength, BladeSize);
}
}

View File

@@ -36,4 +36,9 @@ public class Scythe : ManualTool
{
_bladeType = parNewBladeType;
}
public override object Clone()
{
return new Scythe(Name, Material, Weight, HandleLength, BladeType);
}
}

View File

@@ -2,7 +2,7 @@
/// <summary>
/// Инструмент для косьбы
/// </summary>
public class Tool
public abstract class Tool : ICloneable
{
/// <summary>
/// Уникальный идентификатор инструмента
@@ -72,4 +72,6 @@ public class Tool
{
return $"Инструмент: {Name}, Материал: {Material}, Вес: {Weight}";
}
public abstract object Clone();
}

View File

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