Создайте класс RightTriangle и Создайте производный класс Rectangle - C#
Формулировка задачи:
Создайте класс RightTriangle (Прямоугольный треугольник), задаваемый катетами и опишите механизм вычисления его периметра. Создайте производный класс Rectangle (Прямоугольник), задаваемый длинами сторон и умеющий вычислять свой периметр. Реализуйте метод с одинаковым именем в обоих классах для вывода параметров объекта
Вопрос1: правильно ли я реализовал метод с одинаковым именем в обоих классах для вывода параметров объекта?
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace RightTriangle
{
class RightTriangle
{
private int cathetusA; //катет А
private int cathetusB; //катет Б
private int hypothenuse; //гипотенуза
public RightTriangle(int sideA, int sideB)
{
cathetusA = sideA;
cathetusB = sideB;
}
public int sideA
{
get { return cathetusA; }
set { cathetusA = value; }
}
public int sideB
{
get { return cathetusB; }
set { cathetusB = value; }
}
//Вот тут я реализовал метод для треугольника
//который выводит параметры объекта
public void getObjectInfo()
{
Console.WriteLine("Triangle info:\nSideA=" + sideA + "\nSideB=" + sideB + "\nPerimetr=" + TrianglePerimetr() + "\n------------");
}
//метод, который находит периметр треугольника
public int TrianglePerimetr()
{
//Формула:
//P = a + b + c
//c - hypothenuse, a - sideA, b - sideB
//[SUP]c2[/SUP] = [SUP]a2[/SUP] + [SUP]b2[/SUP]
Math.Pow(sideA, 2);
Math.Pow(sideB, 2);
hypothenuse = sideA + sideB;
Math.Sqrt(hypothenuse);
Math.Sqrt(sideA);
Math.Sqrt(sideB);
return sideA + sideB + hypothenuse;
}
}
class Rectangle : RightTriangle
{
public Rectangle(int sideA, int sideB) : base(sideA, sideB) { }
//Вот тут я реализовал метод для прямоугольника
//который выводит параметры объекта
public void getObjectInfo() //тут getObjectInfo() подчёркивает зелёным цветом, но программа работает
{ //RightTriangle.Rectangle.getObjectInfo() hides inherited member RightTriangle.RightTriangle.getObjectInfo().
//Use the new keyword if hiding was intended
Console.WriteLine("Rectangle info:\nSideA=" + sideA + "\nSideB=" + sideB + "\nPerimetr=" + RectanglePerimetr() + "\n------------");
}
//метод, который находит периметр прямоугольника
public int RectanglePerimetr()
{
//Формула:
//P = (a + b) * 2
return (sideA + sideB) * 2;
}
}
class Program
{
static void Main(string[] args)
{
RightTriangle triangle = new RightTriangle(5, 10);
Rectangle rectangle = new Rectangle(20, 10);
triangle.getObjectInfo();
rectangle.getObjectInfo();
Console.ReadLine();
}
}
}Решение задачи: «Создайте класс RightTriangle и Создайте производный класс Rectangle»
textual
Листинг программы
Math.Pow(sideA, 2); Math.Pow(sideB, 2); hypothenuse = sideA + sideB; //это единственная строка которая хоть что-то дает в итоге, но поставленную задачу не решает Math.Sqrt(hypothenuse); Math.Sqrt(sideA); Math.Sqrt(sideB); return sideA + sideB + hypothenuse;