---------------------- ASP.Net+Unity开发、.Net培训、期待与您交流! ----------------------
1.如果子类和父类的方法名重名了,会在子类的方法名下方有绿线,解决方案有三种
(1) 在子类的方法的访问 修饰符后面加new
(2) 在子类的方法访问修饰符后面加override ,并且在父类中的访问修饰符后面加virtual
class Person
{
public Person(string name,char gender,int age)
{
this._name = name;
this._gender = gender;
this._age = age;
}
#region 属性
private string _name;
public string Name
{
get { return _name; }
set { _name = value; }
}
private char _gender;
public char Gender
{
get { return _gender; }
set { _gender = value; }
}
private int _age;
public int Age
{
get { return _age; }
set { _age = value; }
}
#endregion
public virtual void Show()
{
Console.WriteLine("{0}岁的{1}在传值播客是最纯洁的{2}老师",_age,_name,_gender);
}
}
class Teacher:Person
{
public Teacher(string name, char gender, int age,string id):base(name,gender,age)
{
this._id = id;
}
string _id;
public string Id
{
get { return _id; }
set { _id = value; }
}
public override void Show()
{
Console.WriteLine("{0}岁的{1}在传值播客是最纯洁的{2}老师", base.Age, base.Name, base.Gender);
}
}
2.子类可以和父类方法名相同的方法
(1)签名不同,既是方法的重载
(2)签名相同,会隐藏基类的方法
3. 子类可以重写父类的方法
(1)父类为虚方法,子类使用override关键字重写
(2)重写基类方法一样可以调用基类方法
4.多态:就是多种形态,指的是父类的引用指向子类的对象,当调用方法时,会动态绑定到子类重写的方法上,实现多种形态
5.抽象类和抽象方法
(1)如果类中有abstract修饰的方法,那么这个方法就是抽象方法,这个方法所在的类,必须是抽象类,即类也要使用abstract修饰,变为抽象类。
(2)抽象类不能被实例化,抽象方法没有方法体
(3)继承抽象类的子类必须重写父类中的抽象方法
(4)抽象成员只能存在于抽象类中
---------------------- ASP.Net+Unity开发、 .Net培训、期待与您交流! ----------------------详细请查看: www.itheima.com