Inheritance: Point2D
Exemple #1
0
        static void Main()
        {
            Point2D p1 = new Point2D(10,7);
            Point3D p2 = new Point3D(10, 7, -5);
            Point3D p3 = new Point3D(10, 7, 5);

            // Переменная p1 имеет тип Point2D, p2 - Point3D
            // Функция CalculateDistance из класса Point2D принимает аргумент типа Point2D
            // Т.к. класс Point3D является наследником Point3D, то этот вызов является допустимым
            // Фактически мы вычисляем растояние между двумя Point2D игнорируя координату Z
            Console.WriteLine(p1.CalculateDistance(p2)); // Результат - 0

            // Аналогично первому вызову
            Console.WriteLine(p2.CalculateDistance(p1)); // Результат - 0

            // Обе переменные имеют тип Point3D
            // Вызывается функция CalculateDistance класса Point3D
            Console.WriteLine(p2.CalculateDistance(p3)); // Результат - 10
        }
Exemple #2
0
 //public double CalculateDistance(Point2D other)
 //{
 //}
 public double CalculateDistance(Point3D other)
 {
     return Math.Sqrt(Square(other.X - X) + Square(other.Y - Y) + Square(other.Z - Z));
 }