11.小结
Person p=new Student();
new 子类时,先创建子类对象调用子类的构造函数时创建父类对象,调用父类构造函数。
子类默认调用父类的无参数构造函数
类的访问修饰符默认就是internal(程序集内共享--也就是项目内部共享,只能在项目内部访问)
类的成员变量的访问修饰符默认是private
(*)代码实现:
<------------------------------------Person---------------------------------------------->
public class Person
{
#region成员变量和属性
string _name;
public string Name
{
get{return _name;}
set{_name=value;}
}
string _hobby;
public string Hobby
{
get{return _hobby;}
set{_hobby=value;}
}
int _age;
public int Age
{
get{return _age;}
set{_age=value;}
}
bool _gender;
public bool Gender
{
get{return _gender;}
set{_gender=value;}
}
double _salary;
public double Salary
{
get{return _salary;}
set{_salary=value;}
}
#endregion
public Person()
{
Console.WriteLine("Person构造函数");
}
public void SayHello()
{
Console.WriteLine("Hello World");
}
//带参数的构造函数
public Person(string name)
{
this._name=name;
}
private string s="Person 的私有成员";
public void SayHelloFromFather()
{
Console.WriteLine("这是来自父类的问候");
}
//虚方法,可以被子类重写。
//当类存在继承关系的时候,类里的this,既能够指向子类对象的成员,也能够同时通过base指向父类的成员。
public virtual void SayHi()
{
Console.WriteLine("大家好~父类的SayHi()");
}
}
<--------------------------------Student------------------------------------------------>
internal class Student:Person
{
public Student():base("")
{
//子类中可以访问到父类中受保护的成员
base.s="私有的";
Console.WriteLine("继承父类无参数的构造函数");
}
public Student(string s):base(s)
{
Console.WriteLine("Student的构造函数");
}
public override void SayHi()
{
base.SayHi();
//当类存在继承关系的时候,类里的this,既能够指向子类对象的成员,也能够同时通过base指向父类的成员
Console.WriteLine("大家好,我叫{0},{1}岁了,性别{2},爱好{3}",base.Name,base.Age,base.Gender,base.Hobby);
}
} 作者: 许庭洲 时间: 2012-12-22 08:38
值得学习ing!作者: 李拴同 时间: 2012-12-22 08:49
好好学些,天天向上。。。