diff --git a/CourseApp.Tests/AnimalsTest.cs b/CourseApp.Tests/AnimalsTest.cs
index e871ddc..215cbe3 100644
--- a/CourseApp.Tests/AnimalsTest.cs
+++ b/CourseApp.Tests/AnimalsTest.cs
@@ -56,5 +56,18 @@ public void ToStringTesting()
Assert.Equal("Собака по имени White. Её возраст - 5, пол - женский", animals[0].ToString());
Assert.Equal("Кот по имени Black. Его возраст - 2, пол - мужской", animals[1].ToString());
}
+
+ [Fact]
+ public void ToCompareTest()
+ {
+ Animals[] animals = new Animals[3];
+ animals[0] = new Dog("White", 5, "female");
+ animals[1] = new Cat("Black", 2, "male");
+ animals[2] = new Dog("Black");
+ if (animals[0].CompareTo(animals[1]) == 1 && animals[1].CompareTo(animals[2]) == 0)
+ {
+ Assert.True(true);
+ }
+ }
}
}
\ No newline at end of file
diff --git a/CourseApp.Tests/CourseApp.Tests.csproj b/CourseApp.Tests/CourseApp.Tests.csproj
index 21e7368..5815955 100644
--- a/CourseApp.Tests/CourseApp.Tests.csproj
+++ b/CourseApp.Tests/CourseApp.Tests.csproj
@@ -1,7 +1,7 @@
- netcoreapp3.0
+ netcoreapp 3.1
True
1573,1591,1701;1702;1705
false
@@ -27,4 +27,4 @@
-
\ No newline at end of file
+
diff --git a/CourseApp/Animals.cs b/CourseApp/Animals.cs
index 98ee636..c73ecd8 100644
--- a/CourseApp/Animals.cs
+++ b/CourseApp/Animals.cs
@@ -3,6 +3,7 @@
namespace CourseApp
{
+ public abstract class Animals : IComparable, IMovable
public abstract class Animals
{
private string sex;
@@ -58,5 +59,30 @@ public virtual void AgeUp()
{
this.Age++;
}
+
+ public virtual void Move()
+ {
+ Console.WriteLine("Животное идёт");
+ }
+
+ public int CompareTo(object o)
+ {
+ Animals animal = o as Animals;
+ if (animal != null)
+ {
+ if (animal.Name == this.Name)
+ {
+ return 0;
+ }
+ else
+ {
+ return 1;
+ }
+ }
+ else
+ {
+ throw new Exception("Невозможно сравнить два объекта");
+ }
+ }
}
}
\ No newline at end of file
diff --git a/CourseApp/Cat.cs b/CourseApp/Cat.cs
index f740b3e..31528ba 100644
--- a/CourseApp/Cat.cs
+++ b/CourseApp/Cat.cs
@@ -42,6 +42,11 @@ public override int Age
}
}
+ public override void Move()
+ {
+ Console.WriteLine("Кот крадётся");
+ }
+
public override string RunningSpeed()
{
return "Средняя скорость домашнего кота во время бега - 43 - 45 км/ч, максимальная - до 50 км/ч";
@@ -56,6 +61,7 @@ public override void Info()
{
Console.WriteLine(this.ToString());
Console.WriteLine(this.RunningSpeed());
+ this.Move();
}
}
}
\ No newline at end of file
diff --git a/CourseApp/CourseApp.csproj b/CourseApp/CourseApp.csproj
index c941549..4119573 100644
--- a/CourseApp/CourseApp.csproj
+++ b/CourseApp/CourseApp.csproj
@@ -2,7 +2,7 @@
Exe
- netcoreapp3.0
+ netcoreapp 3.1
True
1573,1591,1701;1702;1705;
@@ -20,4 +20,4 @@
-
\ No newline at end of file
+
diff --git a/CourseApp/Dog.cs b/CourseApp/Dog.cs
index e380c5d..482363f 100644
--- a/CourseApp/Dog.cs
+++ b/CourseApp/Dog.cs
@@ -56,6 +56,7 @@ public override void Info()
{
Console.WriteLine(this.ToString());
Console.WriteLine(this.RunningSpeed());
+ this.Move();
}
}
}
\ No newline at end of file
diff --git a/CourseApp/IComparable.cs b/CourseApp/IComparable.cs
new file mode 100644
index 0000000..93541ff
--- /dev/null
+++ b/CourseApp/IComparable.cs
@@ -0,0 +1,9 @@
+using System;
+
+namespace CourseApp
+{
+ public interface IComparable
+ {
+ int CompareTo(object o);
+ }
+}
\ No newline at end of file
diff --git a/CourseApp/IMovable.cs b/CourseApp/IMovable.cs
new file mode 100644
index 0000000..e1de7d7
--- /dev/null
+++ b/CourseApp/IMovable.cs
@@ -0,0 +1,9 @@
+using System;
+
+namespace CourseApp
+{
+ public interface IMovable
+ {
+ void Move();
+ }
+}
\ No newline at end of file
diff --git a/CourseApp/Program.cs b/CourseApp/Program.cs
index 8840d95..a904eb7 100644
--- a/CourseApp/Program.cs
+++ b/CourseApp/Program.cs
@@ -57,9 +57,9 @@ public static void Main(string[] args)
Console.WriteLine("Задание В:");
Console.WriteLine("==========");
foreach (var item in taskBRes)
- {
- Console.WriteLine($"y1 = {item}");
- }
+ {
+ Console.WriteLine($"y1 = {item}");
+ }
Console.WriteLine("==========");
Animals[] animals = new Animals[2];
@@ -70,6 +70,15 @@ public static void Main(string[] args)
animal.Info();
Console.WriteLine();
}
+
+ if (animals[0].CompareTo(animals[1]) == 0)
+ {
+ Console.WriteLine("Животные имеют одинаковую кличку");
+ }
+ else
+ {
+ Console.WriteLine("Животные имеют разные клички");
+ }
}
}
}