是为了子类的SayHi方法可以不用在声明属性。直接调用父类的属性。
public class Person //这是父类
{
string _name;
public string Name { get { return _name; } set { _name = value; } }
int _age;
public int Age { get { return _age; } set { _age = value; } }
public Person(string name, int age) //父类构造函数
{
this.Name = name;
this.Age = age;
}
}
public class student: Person
{
public void SayHi()
{
Console.WriteLine("大家好,我叫{0},我今年{1}岁了", this.Name, this.Age);
}
public student(string name, int age)
: base(name, age)//这里如果不调用父类构造函数,方法SayHi的this.Name和this.Age就没办法接收到父类这两个的属性。
{
}
class Program
{
static void Main(string[] args)
{
Teacher t = new Teacher("jack", 30, "123456");
}
}
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person(string name, int age)
{
this.Name = name;
this.Age = age;
}
}
class Teacher : Person
{
public string ID { get; set; }
public Teacher(string name1, int age1,string ID)
: base(name1,age1)//构造函数为子类有参数构造函数,用base关键字调用父类构造函数
{
this.ID = ID;
}
}作者: 边亮 时间: 2013-3-11 20:41
public class Person//父类 其中有自己的字段属性和构造函数
{
string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
public Person(string name, int age)//父类的构造函数,原来无参数的构造函数被干掉
{
this.Name = name;
this.Age = age;
}
}
public class Programmaer:Person//子类 继承父类有自己的字段属性和构造函数
{
int _workYear;
public int WorkYear
{
get { return _workYear; }
set { _workYear = value; }
}
请问一下,你的代码里面base 是不是super : 是不是extends 的意思呢?作者: 李准 时间: 2013-3-11 21:10
虽然上面的同学已经回答的很好了!但是还是决定一起讨论下吧,互相学习!
class Program
{
static void Main(string[] args)
{
//Driver类中的显性调用父类构造函数,作用就是在这里传值就可以了
//调用了父类的属性
Driver pro= new Driver("司机", 20, 10);
//调用自己独有的方法
pro.ProSay();
Reporter rep = new Reporter("记者", 10, "采访");
rep.ReSay();
Console.ReadKey();
}
}
//假设有两个类司机和记者,这两个类的共同特点就是都是人,都有姓名和年龄
//所以就 声明一个人类让司机和记者两个类继承人类,他们可以有人类的属性,
//并可以在自己的类里面声明自己独有的属性,便于理解点就是可以省代码
//声明人类
public class Person
{
string _name;//姓名
public string Name
{
get { return _name; }
set { _name = value; }
}
int _age;//年龄
public int Age
{
get { return _age; }
set { _age = value; }
}
//父类构造函数 ,便于子类调用
public Person(string name, int age)
{
this.Name = name;
this.Age = age;
}
}
//司机类,继承人类,继承后有人类的属性,
//并且可以有自己的属性 _workYear为自己的特有属性
public class Driver:Person
{
int _workYear;
public int WorkYear
{
get { return _workYear; }
set { _workYear = value; }
}
//司机自己的方法
public void ProSay()
{
Console.WriteLine("大家好,我叫{0},今年{1}岁了,我的工作年限是{2}",this.Name,this.Age,this.WorkYear);
}
//base:显性调用父类的构造函数,name age起到了传值的作用
public Driver(string name, int age, int workyear)
: base(name, age)
{
this.WorkYear = workyear;
}
}
//记者类,继承人类
public class Reporter : Person
{
string _hobby; //假设记者的特有属性
public string Hobby
{
get { return _hobby; }
set { _hobby = value; }
}
//base显性调用父类构造函数
public Reporter(string name, int age, string hobby)
: base(name, age)
{
this.Hobby = hobby;
}
//自己独有的方法
public void ReSay()
{
Console.WriteLine("大家好,我叫{0},我的爱好是{1},",this.Name,this.Hobby);
}
}
便于看,我把类都写在了同一个界面,类最好是在项目里添加类。大家共同学习,一起努力!一起加油!!作者: 李准 时间: 2013-3-11 21:13
回复中的表情符号是子类继承父类的冒泡,回复自动转换为表情符号了,亲,不好理解错哦!刚忘了对你说了!{:soso_e112:}就这个表情是表示冒号!作者: 刘海陆 时间: 2013-3-11 21:19
不好意思,我进错屋子了,sorry!作者: luxun1912 时间: 2013-3-11 21:29
1、以下代码供参考
public class Person //父类
{
string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
public Person(string name, int age)
{
this.Name = name;
this.Age = age;
}
}
public class Programmaer:Person //继承
{
int _workYear;
public int WorkYear
{
get { return _workYear; }
set { _workYear = value; }
}
public void ProSay()
{
Console.WriteLine("大家好,我叫{0},今年{1}岁了,我的工作年限是{2}",this.Name,this.Age,this.WorkYear);
}
public Programmaer(string name, int age, int workyear)
: base(name, age)//base用来表示父类,可以用于访问父类的成员
{
this.WorkYear = workyear;
}
}