c# 高级语法之继承

2022-11-10 22:48:46 浏览数 (1)

1、继承的定义:

类(子类)可以从另一个类(父类)继承以扩展或定制原始类。

继承一个类会重用该类中的功能。

类只能从一个类继承。

2、代码展示

代码语言:c#复制
 static void Main(string[] args)
     {
#region 继承
    Student student = new Student();
    student.Run();
    student.Height = 175;
    Person person = new Student();
    person.Run();  
     
   Console.ReadKey();
    }
}

父类
class Person
    {    
       public int Height { get; set; }  
        public void Run()
        {
            Console.WriteLine("Person can run");
        }
      
    }
    子类
    class Student : Person
    {
        public new void Run()
        {
            Console.WriteLine("Student can run");
        }
     
    }
    #endregion

总结:

1、父类不可以用私有修饰符,默认使用的是internal(超出命名空间的类无法继承此类)

2、new 用在子类中表示,父类中同名的方法被隐藏了

3、父类中的方法被私有修饰符修饰,子类无法继承

02 面向对象之继承中抽象类与抽象方法

1、抽象类与抽象方法

(1)使用 abstract 关键字进行定义

(2)抽象方法必须定义在抽象类中且无方法体

(3)使用 override 关键字进行重写

注意:如果想用 override 直接重写普通父类的普通方法必须用 virtual 将父类方法定义为虚方方法

2、代码展示

代码语言:c#复制
  static void Main(string[] args)
        {
            #region 继承
            //Student student = new Student();           
            //student.Eat();
            //student.play();
            //Person person = new Student();           
            //person.Eat();
            //person.play(); 
            #endregion          

            Console.ReadKey();
        }
    }

    #region 继承
    abstract class Person
    {        
        public virtual void Eat()
        {
            Console.WriteLine("Person can eat");
        }
        public abstract void play();
    }
    class Student : Person
    {      
        public override void Eat()
        {
            Console.WriteLine("Student can eat");
        }

        public override void play()
        {
            Console.WriteLine("Student can play");
        }
    }
    #endregion

0 人点赞