天天看點

C#基類和派生類_161103

C#不支援私有繼承

  • 派生類應當那個被看做是基類所具有的特性和功能的繼承和擴充,而不是簡單的派生類大于基類
  • 派生類不能選擇性的繼承基類的方法和屬性,必須繼承基類的所有特性和方法
  • 派生類可以在繼承基類的基礎上自由定義自己的特性
  • 基類的構造方法和析構方法不能夠被繼承,除此之外的所有成員都可以被繼承
  • 基類成員的通路方式不影響他們成為派生類的成員
  • 派生類中繼承的基類成員與基類中的成員隻是相同,不是同一個成員

來個栗子

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

namespace Ch06Ex01

{

    public class Person

    {

        protected string name;

        protected int age;

        public Person(string name, int age)

        {

            this.name = name;

            this.age = age;

        }

        public void ShowPersonInfo()

        {

            Console.Write("name :{0}\t age:{1}\t", name, age);

        }

    }

    public class Student : Person

    {

        private string studentID;

        public Student(string studentID, string name, int age) : base(name, age)

        {

            this.studentID = studentID;

        }

        public void ShowStudentInfo()

        {

            Console.Write("studentID:{0}", studentID);

        }

    }

    class Program

    {

        static void Main(string[] args)

        {

            Student student = new Student("12345", "Jack", 23);

            student.ShowPersonInfo();

            student.ShowStudentInfo();

        }

    }

}

c#