C#面向对象总结二继承

继承是面向对象的三大特性之一。

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();
        }
C#面向对象总结二继承_第1张图片
new关键字修饰

C#面向对象总结二继承_第2张图片
override关键字修饰

结论:
new关键字用来区分子类和派生类的方法
override重写父类的方法,即覆盖了父类的方法

【原】

你可能感兴趣的:(C#面向对象总结二继承)