日期:2014-05-18 浏览次数:20814 次
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace 第二季 { class Program { static void Main(string[] args) { Person p1 = new Person("ahgnsan", 20); p1.SayHello(); 中国人 p2 = new 中国人(); p2.Name = "lisi"; p2.gonfu(); p2.hukou = "nanjing"; Console.ReadKey(); } } class Person { public string Name { get; set; } public int Age { get; set; } public Person(string name) { this.Name = name; } public Person(int Age) { this.Age = Age; } public Person(string name, int age) { this.Age = age; this.Name = name; } public void SayHello() { Console.WriteLine("你好"); } } class 中国人 : Person { public string hukou { set; get; } public void gonfu() { Console.WriteLine("wo da!!"); } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Collections; using System.IO; namespace ConsoleApplication6 { class Program { static void Main(string[] args) { Person p1 = new Person("ahgnsan", 20); p1.SayHello(); 中国人 p2 = new 中国人(); p2.Name = "lisi"; p2.gonfu(); p2.hukou = "nanjing"; Console.ReadKey(); } } class Person { public string Name { get; set; } public int Age { get; set; } public Person() { } public Person(string name) { this.Name = name; } public Person(int Age) { this.Age = Age; } public Person(string name, int age) { this.Age = age; this.Name = name; } public void SayHello() { Console.WriteLine("你好"); } } class 中国人 : Person { public string hukou { set; get; } public void gonfu() { Console.WriteLine("wo da!!"); } } }
------解决方案--------------------
中国人 : Person
因为"中国人"这个类有一个默认的0参构造函数,这就要求它的基类也有一个0参的构造函数,但是不存在,所以报错了。
你只需要给Person添加一个无参的构造函数就行了。
------解决方案--------------------
class Person { public string Name { get; set; } public int Age { get; set; } //这个类中要包含一个空参的构造函数 public Person() { } //因为有带参数的构造函数,上面的空参函数是必须的 public Person(string name) { this.Name = name; } public Person(int Age) { this.Age = Age; } public Person(string name, int age) { this.Age = age; this.Name = name; } public void SayHello() { Console.WriteLine("你好"); } }
------解决方案--------------------
这个 到没注意到 我百度了下 得到结果
因为构造子类前必定构造父类 中国人继承自Person 而当你(new 中国人)的时候 首先会先构造Person 而你的父类Person又没有0个参数的构造函数 所以当然出错.
------解决方案--------------------
继承的类,初始化的时候会先执行基类的构造函数,如你的“中国人”类,继承了Person类;则初始化“中国人”类的时候,会先执行基类Person的构造函数。Person基类里面有两个构造函数的重载,两个构造函数都有