C#學習筆記12-繼承的基本概念

何爲繼承

C#中的繼承,其實和我們現實中的繼承很一致,都是兒子(子類)從自己父親(父類)中繼承一部分東西,簡單來說,繼承就是子類將父類中的屬性、方法和字段延續下來,避免重複定義相同的類成員
在C#中,繼承又是爲了什麼呢?

爲什麼要繼承

用一個很簡單的例子來說明一下,
對於下面兩個類:Student和Teacher來說,存在許多相同的成員,兩者的差別在於老師多了個_salary字段和Salary屬性,並且兩者各自有不同的方法,因此如果將上述兩個類中分別定義,會造成代碼冗餘,並且程序的擴展性也不好。
在這裏插入圖片描述
於是我們想到定義一個父類Person:包含Name、Age、Gender、CHISS()等人類共有的屬性和方法
那麼對於不同身份的人(子類),可以不去定義這些類和方法,直接繼承父類的成員,這樣就可以避免代碼冗餘

繼承實例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _06繼承
{
    // 繼承演練
    class Program
    {
        static void Main(string[] args)
        {
        }
    }
    public class StudentInfo:Person//繼承
    {
        public void Study()
        {
            Console.WriteLine("學習");
        }
        public StudentInfo(string name,int age,int id)
            :base(name,age)
        {
            this.Id = id;
        }
    }
    public class TeacherInfo:Person//繼承
    {
        double _salary;
        public double Salary
        {
            get { return _salary; }
            set { _salary = value; }
        }
        public void Teach()
        {
            Console.WriteLine("教育");
        }
    }
    public class Person//父類
    {
        string _name;
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        int _age;
        public int Age
        {
            get { return _age; }
            set { _age = value; }
        }
        string _gender;
        public string Gender
        {
            get { return _gender; }
            set { _gender = value; }
        }
        int _id;
        public int Id
        {
            get { return _id; }
            set { _id = value; }
        }
        public void CHISS()
        {
            Console.WriteLine("喫喝拉撒睡");
        }
        public Person(string name,int age)//構造函數重載
        {
            this.Name = name;
            this.Age = age;
        }
        public Person()//構造函數
        {

        }
    }
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章