构造函数是用来创建对象的特殊函数,函数名和类名一样,没有返回值,连void都不用。
构造函数可以有参数,new对象的时候传递函数参数即可。
构造函数可以重载,也就是有多个参数不同的构造函数。
如果不指定构造函数,则类有一个默认的无参构造函数。
如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
构造函数用来创建对象,并且可以在构造函数中对对象进行初始化。
其成员被继承的类交基类也叫父类,继承其成员的类交派生类也称子类。
子类只能有一个直接父类,所以C#并不支持多重继承,但一个父类可以有多个直接子类。
继承是可以继承的。
class Person派生出"中国人","中国人"派生出"北京人",则"北京人"会继承"中国人"和"person"中声
明的成员。
构造函数可以有参数,new对象的时候传递函数参数即可。
构造函数可以重载,也就是有多个参数不同的构造函数。
如果不指定构造函数,则类有一个默认的无参构造函数。
如果指定了构造函数,则不再有默认的无参构造函数,如果需要无参构造函数,则需要自己来写。
构造函数用来创建对象,并且可以在构造函数中对对象进行初始化。
class Program
{
static void Main(string[] args)
{
Person p = new Person();
Person p1 = new Person("Tom");
Person p2 = new Person("Tom", 23);
Console.WriteLine("姓名:{0},年龄{1}", p.Name, p.Age);
Console.WriteLine("姓名:{0},年龄{1}", p1.Name, p1.Age);
Console.WriteLine("姓名:{0},年龄{1}", p2.Name, p2.Age);
Console.ReadKey();
//输出结果为:姓名:无名氏,年龄0
//姓名:Tom,年龄0
//姓名:Tom,年龄23
}
}
class Person
{
public string Name { get; set; }
public int Age { get; set; }
public Person()
{
Name = "无名氏";
Age = 0;
}
public Person(string name)
{
this.Name = name;
}
public Person(string name, int age)
{
this.Name = name;
this.Age = age;
}
}
继承、封装和多态是面向对象编程的重要性。
其成员被继承的类交基类也叫父类,继承其成员的类交派生类也称子类。
子类只能有一个直接父类,所以C#并不支持多重继承,但一个父类可以有多个直接子类。
继承是可以继承的。
class Person派生出"中国人","中国人"派生出"北京人",则"北京人"会继承"中国人"和"person"中声
明的成员。
class Program
{
static void Main(string[] args)
{
中国人 cl = new 中国人();
cl.Height = 170;
cl.Name = "李小龙";
cl.SayHello();
cl.户口 = "北京";
cl.功夫();
北京人 kl = new 北京人();
kl.Height = 160;
kl.Name = "金三顺";
kl.做泡菜();
Person p1 = cl;
p1.SayHello();
Person p2 = kl;
p2.SayHello();
Console.ReadKey();
//输出结果:李小龙
//我打!!
//吃泡菜
//李小龙
//金三顺
}
}
class Person //父类
{
public string Name { get; set; } //成员变量
public int Age { get; set; }
public int Height { get; set; }
public void SayHello() //成员函数
{
Console.WriteLine("{0}", this.Name);
}
}
class 中国人 : Person
{
public string 户口 { get; set; } //成员变量
public void 功夫() //成员函数
{
Console.WriteLine("我打!!");
}
}
class 北京人 : 中国人
{
public string 饭量 { get; set; } //成员变量
public void 做泡菜() //成员函数
{
Console.WriteLine("吃泡菜");
}
}