类的继承
-
概念
一、is a
一个子类的实例也是一个父类的实例(一个汽车是一个交通工具),可以用父类类型的变量引用子类类型的实例
Vehicle vehicle = new Car();(一个汽车是一个交通工具)
二、什么叫继承
子类在完整接收父类成员的前提下,对父类进行的横向扩展(成员越来越多)和纵向扩展(行为改变,版本增高,重写)
1 /*======父类的实例构造器是不能被子类所继承的==========*/ 2 using System; 3 using System.Collections.Generic; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace 类的继承_类成员访问30_35构造器 9 { 10 class Program 11 { 12 static void Main(string[] args) 13 { 14 Car car = new Car(); 15 Console.WriteLine(car.Owner); 16 } 17 } 18 19 class Vehicle 20 { 21 public Vehicle( string owner) 22 { 23 this.Owner = owner ; 24 } 25 public string Owner { get; set; } 26 } 27 28 class Car : Vehicle 29 { 30 //法一 代码为 public Car():base ("N/A"){ this.Owner = "Car Owner";} 31 32 //方法一为 :base ("N/A") ,意思是当我们在调这个Vehicle构造器的时候,把"N/A"这个值传到构造器中,这就满足了Vehicle的签名 33 public Car() : base("N/A") { this.Owner = "Car Owner"; } 34 35 36 37 //法二 //方法二为 Car类型的构造器也给它添加一个参数, 38 //public Car(string owner) :base(owner){ this.Owner = Owner;} 39 40 public Car(string owner) :base(owner){ this.Owner = Owner;} 41 42 43 } 44 45 }
三、1.internal自己的程序集中
2.protected限制在继承链上,不在继承链上其他的类无法访问。protected可以跨程序集