1. 程式人生 > >C#基類和派生類_161103

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();
         
           
        }
    }
}