ООП в C# - функция всегда возвращает 0
Объясните, пожалуйста, почему в результате выдает всегда 0? С# только начал изучать, скорее всего что то не учел. Вот код консольного приложения:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplication3
{
abstract public class Solid
{
protected double a = 0, b = 0;
public virtual double GetVolume()
{
return 1 / 3 * Math.Pow(a,2) * b;
}
}
public class Cone : Solid
{
public double R;
public double H;
public override double GetVolume()
{
base.a = R;
base.b = H;
return base.GetVolume();
}
}
public class Pyramid : Solid
{
public double A;
public double H;
public override double GetVolume()
{
base.a = A;
base.b = H;
return base.GetVolume();
}
}
class Program
{
static void Main(string[] args)
{
Pyramid pyramid = new Pyramid();
Cone cone = new Cone();
//
Console.Write("Введите сторону пирамиды: ");
pyramid.A = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите высоту пирамиды: ");
pyramid.H = Convert.ToDouble(Console.ReadLine());
///
Console.Write("Введите радиус конуса: ");
cone.R = Convert.ToDouble(Console.ReadLine());
Console.Write("Введите высоту конус: ");
cone.H = Convert.ToDouble(Console.ReadLine());
//
Console.WriteLine("Объем пирамиды = "+pyramid.GetVolume());
Console.WriteLine("Объем конуса = " + cone.GetVolume());
Console.ReadKey();
}
}
}
Источник: Stack Overflow на русском