c#错误 1 “Graphics”方法没有采用“0”个参数的重载 ,z这是为什么呢
usingSystem;usingSystem.Collections.Generic;usingSystem.Text;namespace__3{publicabstr...
using System;
using System.Collections.Generic;
using System.Text;
namespace __3
{
public abstract class Graphics
{
public double a, b, c;
public Graphics(double x, double y, double z)
{
a = x;
b = y;
c = z;
}
public virtual void Area()
{
}
}
class Trapezia : Graphics
{
public Trapezia(double x, double y, double z)
{
a = x;
b = y;
c = z;
}
public override void Area()
{
double s;
s = (a + b) * c / 2;
Console.WriteLine("梯形的面积是{0}", s);
}
}
class Triangle : Graphics
{
public Triangle(double x, double y, double z)
{
a = x;
b = y;
c = z;
}
public override void Area()
{
double s;
s = a * b / 2;
Console.WriteLine("三角形的面积是:{0}", s);
Console.ReadLine();
}
}
class Text
{
static void Main(string[] args)
{
double x, y, z;
Console.WriteLine("请输入a,b,c的值");
x = Convert.ToDouble(Console.ReadLine());
y = Convert.ToDouble(Console.ReadLine());
z = Convert.ToDouble(Console.ReadLine());
Trapezia text1 = new Trapezia(x, y, z);
Triangle text2 = new Triangle(x, y, z);
}
}
} 展开
using System.Collections.Generic;
using System.Text;
namespace __3
{
public abstract class Graphics
{
public double a, b, c;
public Graphics(double x, double y, double z)
{
a = x;
b = y;
c = z;
}
public virtual void Area()
{
}
}
class Trapezia : Graphics
{
public Trapezia(double x, double y, double z)
{
a = x;
b = y;
c = z;
}
public override void Area()
{
double s;
s = (a + b) * c / 2;
Console.WriteLine("梯形的面积是{0}", s);
}
}
class Triangle : Graphics
{
public Triangle(double x, double y, double z)
{
a = x;
b = y;
c = z;
}
public override void Area()
{
double s;
s = a * b / 2;
Console.WriteLine("三角形的面积是:{0}", s);
Console.ReadLine();
}
}
class Text
{
static void Main(string[] args)
{
double x, y, z;
Console.WriteLine("请输入a,b,c的值");
x = Convert.ToDouble(Console.ReadLine());
y = Convert.ToDouble(Console.ReadLine());
z = Convert.ToDouble(Console.ReadLine());
Trapezia text1 = new Trapezia(x, y, z);
Triangle text2 = new Triangle(x, y, z);
}
}
} 展开
2个回答
展开全部
因为在默认情况下子类/派生类要调用父类/基类的构造函数(不指明就是无参构造函数)
一个类,在你不定义构造函数的情况下,会有默认的无参构造函数。当你定义了有参的构造函数时,默认的无参构造函数不会被系统自动定义。
在以上两点的基础上,所以当你定义Triangle(double x, double y, double z)这个构造函数的时候,实际上它相当于
Triangle(double x, double y, double z) : base()
由于没有Graphics()这个构造函数,所以报错。
解决方法以下两种:
1.定义Graphics()
2.修改Triangle的构造函数为
Triangle(double x, double y, double z) : base(x, y, z)
一个类,在你不定义构造函数的情况下,会有默认的无参构造函数。当你定义了有参的构造函数时,默认的无参构造函数不会被系统自动定义。
在以上两点的基础上,所以当你定义Triangle(double x, double y, double z)这个构造函数的时候,实际上它相当于
Triangle(double x, double y, double z) : base()
由于没有Graphics()这个构造函数,所以报错。
解决方法以下两种:
1.定义Graphics()
2.修改Triangle的构造函数为
Triangle(double x, double y, double z) : base(x, y, z)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询