你用base调用父类构造函数,但是父类没有三个参数的构造函数,所以要给父类写上三个参数的构造函数
把你的代码改了一下- public class Person
- {
- public Person(string name, int age, char gender)
- {
- _name = name;
- _age = age;
- _gender = gender;
- }
- string _name;
- public string Name
- {
- get { return _name; }
- set { _name = value; }
- }
- int _age;
- public int Age
- {
- get
- {
- if (_age > 100 || _age < 0)
- {
- return _age = 0;
- }
- else
- {
- return _age;
- }
- }
- set { _age = value; }
- }
- char _gender;
- public char Gender
- {
- get { return _gender; }
- set
- {
- if (_gender != '男' && _gender != '女')
- {
- _gender = '男';
- }
- else
- {
- _gender = value;
- }
- }
- }
- }
- public class Student : Person
- {
-
- int _id;
- public int Id
- {
- get { return _id; }
- set { _id = value; }
- }
- public void Study()
- {
- Console.WriteLine("学习");
- }
- public Student(string name, int age, char gender, int id)
- : base(name, age, gender) //表示调用父类构造函数,所以父类要有构造函数
- {
- this.Id = id;
- }
- }
复制代码 |