标签:
一.子类与父类
1.子类:父类
例如:
Dog(子类):Anomal(父类)
子类(派生类)父类(基类和超类)
2.子类可以继承父类那些成员
(非私有成员,但是从技术角度,可以认为是父类的所有成员)
软件系统中的两个类符合is a时可以使用继承
例如:
student is a person
se is a employee
鸵鸟(ostrish)is a bird(错误结论!!!)
☆:继承模式下子类构造背后到底发生了什么?
如果我们想构建一个子类对象
//在Animal父类中 class Animal{ public string Name{get;set} public int Age{get;set} //无参 public Animal() { } //带参 public Animal(string name,int age) { this.Name=name; this.Age=age; } }
//在Dog类中 class Dog:Animal{ public string Name{get;set} public int Age{get;set} //无参 public Dog() { } //带参 public Dog(string name,int age,string color) { this.Name=name; this.Age=age; this.Color=color } public void empty() { Console.WriteLine("Eat mat very happy"); Console.ReadLine(); } }
//Program class Program { static void Main(string[] args) { Dog dog = new Dog(); dog.empty(); } }
打断点进行调试
按F11进行下面调试
成序正常运行
(1)进入子类构造方法名,但子类构造的方法体
(2)跳转到父类构造方法名,接下来执行父类构造的方法体
(3)父类方法体执行完毕,转到子类的方法体执行
(4)子类方法执行完毕,跳转到Main对象函数,代表子类对象创建工程
结论:
只要你敢创建子类对象,那么后台一定有一个父类对象已经自动生成!!!!
base(a,b):括号中有几个参数,参照的是父类中的带参构造。a,b的参数命名根据子类的带参
构造参数的变量命名
base可以访问属性和方法
2.访问修饰符(protected)
public(方法,类,成员变量):任何地方都可以访问
internal(成员变量,类,方法):只能在当前程序集中使用(访问)
private(方法,成员变量):只能中在当前类的{}使用
protected受到保护的(成员变量和方法):当前类以及其他子类,以及子类的子类
3.单根性和传递性
单根性:一个孩子能有几个亲生父亲
only one
一个子类只能有一个直接父类
4.多态
多态:不同的对象对同一个操作,做出的响应不同,就是多态
5.通过base调用父类构造函数注意点
01.通过base调用父类构造函数只能书写在子类的构造后
02.通过base调用父类构造函数参数顺序和父类的构造函数一致
标签:
原文地址:http://www.cnblogs.com/S2223/p/5376538.html