这是继承,不是重载,改为:
using System;namespace ConsoleApplication6
{
/// <summary>
/// Class1 的摘要说明。
/// </summary>
/// 

class Class1:Class2
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main(string[] args)
{
//
// TODO: 在此处添加代码以启动应用程序
//
string j="ooo";
Class1 class1=new Class1(j);//这里改动即可
//Console.WriteLine(class1.i); } }
class Class2
{

public Class2(string j)
{
 string str=j;

}
}
}                                                  wish u good luck
                                                     Greatsft

解决方案 »

  1.   

    你只要在Class2中,添加一个这样的方法就可以了。public Class2()
    {
    }如果你自己定义了带参的构造函数,则编译器不会再自动为你创建默认构造函数了。或者,你可以再Class1中
    public Class1():base("helo")
    {
    }明确调用基类Class2的带参构造函数也可以。
      

  2.   

    TO  greatsft(C的使者),
    这样改好象还是不行吧。
    Class1继承Class2,Class2中提供了显式构造函数,而Class1中只有默认构造函数,因此当Class1无法调用Class2的构造函数。
    解决方案有两种:
    1.为Class1提供一个显式调用Class2构造函数的构造函数:
    Public Class1() : base("String")
    {
    }

    Public Class1(String str1) : base(str1)
    {
    }
    2.为Class2提供一个不带参数的构造函数
      

  3.   

    谢谢大家其实我知道该怎么改但是不知道为什么要这样改
     coldice(ice)提供的改法是正确的