《C#入门详解》刘老师 类的继承,类成员访问控制

类的继承

  • 概念

一、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 }
View Code

三、1.internal自己的程序集中

        2.protected限制在继承链上,不在继承链上其他的类无法访问。protected可以跨程序集

原文地址:https://www.cnblogs.com/zfcsharp/p/13736319.html