继承是面向对象的三大特性之一。
1.继承
1.1概念:一个类从其他类派生时,派生类隐式获得基类除构造函数和析构函数外所有成员。C#只支持单继承
1.2.语法格式:calss ClassName:SuperClass{}。冒号表示继承,示例
public class Person()
{
private string Name{ get; set; }
}
class Student:Person(){
public Student(string name){
this.Name = name; // 继承了父类的Name属性
}
public void Study(){
Console.WriteLine(name + “在学习”);
}
}
1.3.构造函数:当子类实例化时,构造函数从基类依次被调用。
通过 sealed 关键字可以禁止类进一步派生
2.几个关键字
virtual: 用于修饰方法,属性,索引器或事件,并使他们可以在派生类中被重写(override)
new: 显式隐藏从父类继承的成员,主要用于派生类和父类同名方法的选择
override: 1).重写继承的方法,或事件的抽象实现或虚实现
2).由override声明重写的方法称为重写基方法,重写的基方法必须与override方
法具有相同的方法名和签名
3).不能重写非虚方法或静态方法,重写的基方法必须具有virtual、abstract、或
override关键字
代码:
public class Person()
{
private string Name{ get; set; }
// 如果这里没有加上virtual 关键字修饰,子类将不能通过override关键字进行重写
public virtual void Eat(){
Console.WriteLine("我是人类,我要吃饭");
}
}
class Student:Person(){
public override void Eat()
{
Console.WriteLine("学生要吃饭");
}
//public new void Eat()
//{
// Console.WriteLine("学生要吃饭");
//}
}
static void Main(string[] args)
{
Person person = new Student(“继承”);
person.Eat();
}
new关键字修饰
override关键字修饰
结论:
new关键字用来区分子类和派生类的方法
override重写父类的方法,即覆盖了父类的方法
【原】
网友评论