1、介绍
在C#中,继承是一种面向对象编程的概念,它允许一个类(子类/派生类)获得另一个类(父类/基类)的属性和方法。这使得可以通过构建新的类,重用现有类的功能,并在不同的类之间建立层次关系。
2、继承的特点
继承有以下一些关键特点:
代码重用: 继承允许在新的类中重用已有类的代码,避免了重复编写相同的功能。
派生类可以扩展基类: 派生类可以在继承的基础上添加新的字段、属性、方法,从而增加功能。
方法的重写: 在C#中,可以通过在派生类中使用 override 关键字来重写基类的虚方法。这实现了多态性,使得在运行时能够根据实际的对象类型调用正确的方法。
3、示例1:代码重用
3.1 创建一个基类Person
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _09继承
{// 基类public class Person{private string _name;public string Name{get { return _name; }set { _name = value; }}private int _age;public int Age{get { return _age; }set { _age = value; }}private char _gender;public char Gender{get { return _gender; }set { _gender = value; }}public void CHLSS(){Console.WriteLine("吃喝拉撒睡");}public Person(string name, int age, char gender){this.Name = name;this.Age = age;this.Gender = gender;}}
}
3.2 创建一个派生类Student
使Student
继承Person
类
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace _09继承
{// 派生类public class Student : Person{private int _id;public int Id{get { return _id; }set { _id = value; }}public void StuSayHello(){Console.WriteLine("学生会学习");}public Student(string name, int age, char gender, int id): base(name, age, gender){//this.Name = name;//this.Age = age;//this.Gender = gender;//用了base()调用基类的构造函数,这三行就不用了this.Id = id;}}
}
4、示例2:重写方法
创建基类Shape
// 基类
public class Shape
{public virtual void Draw(){Console.WriteLine("画一个多边形");}
}
创建一个派生类Circle
并使其继承基类Shape
// 派生类
public class Circle : Shape
{// 重写基类的Draw方法public override void Draw(){Console.WriteLine("画一个圆");}
}