
子类不能比父类访问权限更高
当前项目想使用别的项目中的类需要: 1,添加别的项目的引用 2,引入命名空间 3,把类设置为public

子类不能比父类访问权限更高
当前项目想使用别的项目中的类需要: 1,添加别的项目的引用 2,引入命名空间 3,把类设置为public
调用子类的构造函数,会先调用父类的构造函数,
抽象类
C#允许把类和函数声明为 abstract抽象类 抽象类不能实例化,抽象类可以包含普通函数和抽象函数,(什么是抽象函数)抽象函数就是只有函数定义没有函数体。抽象函数本身也是虚拟的Virtual( 只有函数定义,没有函数体实现)
类是一个模板,抽象类就是一个不完整的模板,不能使用部位完整的模板去构造对象
( 为什么把某个类定义成抽象类呢 ) 因为我们知道这个类是不能构造对象的,我们把这个类我们把这个类声明称抽象类,其他人使用抽象类创建对象的时候语法就会不通过 为了防止别人误操作,所以我们就把他声明成抽象的

隐藏方法加关键字new ,就会隐藏父类方法
当我们通过父类声明的对象去调用这个方法的时候如果是虚方法的话依然会调用重写后的方法,如果是隐藏方法的话他就会调用父类里面的方法
虚方法 virtual 把需要重写的方法返回值前加vierual
重写 override
隐藏方法
this 用来访问当前成员
base 用来访问父类成员
所有的数据类型都分为两类,值类型和引用类型
程序的内存区域:堆 栈 静态存储区
栈 空间比较小,但是读取速度快
堆 空间比较大,但是读取速度快
栈的特性:后进先出
数据只能从站的顶端插入和删除 把数据放入栈顶成为入栈( pust ) 从栈顶删除数据成为出栈( pop )

堆 是一块内存区域,与栈不同,堆里面的内存能够一任意顺序存入和移除
int age ; int 类型
var age: 匿名类型
var 匿名类型关键字
构造函数
我们构造对象的时候,对象的初始化过程是自动完成的,但是在初始化对象的过程中有的
时候需要做一些额外的工作,例如需要初始化对象存储的数据,构造函数就是用于初始化
数据的函数。
声明基本的构造函数的语法就是声明一个和所在类同名的方法,但是该方法没有返回类型。
public class Myclass {
public Myclass ( ) {
这个构造函数的函数体
}
}
当我们New对象的时候,当我们实例化对象的时候,当我们创建对象的时候就会调用构造函数。
因为构造函数就是用来构造对象的
构造函数作用 ( 构造函数一般用来初始化数据 )
字段加GetSet方法可以加限制

类和结构体的区别,
为了让编程更加清晰,把程序中的功能进行模块化划分,每个模块提供特定的功能,而且
每个模块都是孤立的,这种模块化编程提供了非常大的多样性,大大增加了重用代码的机
会。
面向对象编程也叫做OOP编程
简单来说面向对象编程就是结构化编程,对程序中的变量结构划分,让编程更清晰。
try { 可能出现异常的代码 }
catch { 要补捉的异常 }
finally { 不管是否出现异常都会执行 }
兄弟们,错误列表 可以在 视图 窗口里找到!!!
public void Insert(数据一数据二)
{
if(index<0||index>count -1){
if()
}
for(int i=count-1;i>)
访问元素
public T this[int index]
{
get{
return data[int index]
{
set
{
data[index]=value;
}
list[10]
List
所有的引用类型都需要用new去定义
for()
public int count
{
get
{
}
}
列表可以存储任何类型的数据
列表就是系统提供的一个类
List list = new list();
任何类里都有tostring的方法
tostring用来输出类的完整路径的