摘要:
抽象方法在抽象类中。抽象类中可以有非抽象成员,子类可以来使用。 抽象类中,申明的构造函数,也可以让子类通过base来调用。 抽象类只能是父类,但是没有规定抽象类必须要有子类 抽象方法既然是抽象的,子类必须实现。子类不想实现父类的方法,在子类中,就将方法设置为abstract,要重写父类方法,必须加o 阅读全文
摘要:
1.虚方法提供一种默认实现,子类可以选择是否重写,如果不重写,那么就使用父类已经实现的方法。(重写可以改变方法的指针) 如果需要改变类型指针,那么需要做方法的重写: 1.如果子类方法是重写方法,那么系统会扫描父类方法中,有没有相同签名的可重写方法,如果没有就报错。 2.如果父类方法是虚方法,那么子类 阅读全文
摘要:
1.子类继承父类,会拥有父类中所规范的所有成员,但是只能是使用其中的公共成员2.实现了继承,可以做到代码的冗余,做到代码的重用3.实现了继承,可以方便代码的扩展与修改4,当子类拥有与父类相同签名(声明与定义)的成员时,子类的成员就会将父类的同名成员隐藏(不是覆盖,还是可以调用父类的成员的,通过bas... 阅读全文
摘要:
1.构造函数是一个特殊的方法,没有返回值类型,不能返回值,方法名称和类名一致。 2.构造函数的作用就是构建对象的属性值。 3.任何类的成员都不可能与类名称一样,除了构造函数与析构函数。 4.任何类都会默认提供一个无参的构造函数。但是如果手动添加了带参的构造函数,那么无参的构造函数,会自动消失,所以在 阅读全文
摘要:
1.属性封装是为了保护与之相对应的字段的,保证字段的读取和赋值是否符合要求 2.属性可以分为:读写,只读,只写 3.允许外部访问的变量一定要申明为属性 4.属性的本质就是两个方法。 5.自动属性 6.属性本身不能存储数据的,一般是和字段连用的,就算自动属性,也是编译器默认帮我们生成了一个字段的。 阅读全文
摘要:
一.概念 1.类的作用是来模拟现实对象的,一个现实对象可以从两个地方进行描述:特征和行为。 2.类不是你凭空想象的,它只是描述现实对象具体的特征和行为的。 3我们写类只需要写我们所需要的。 4.类是提供给别人使用的,所以不能是私有的,或者是受保护的。 二.类的对象初始化 1.通过对象.属性 2.对象 阅读全文
摘要:
1.参数传递默认都是传递栈空间里面存储的内容2.如果添加了ref那么传递的都是栈空间地址,而不再是栈空间里面的内容3.如果添加了out,那么传递的也是栈空间的地址 1 //写一个方法计算一个int类型数组中每个元素的总和以及最大值和最小值 2 /// 3 /// ... 阅读全文
摘要:
1 string str1="aa"; 2 3 string str2="aa"; 4 5 6 str1,str2,变量所指向的堆空间的地址是一样的。栈空间的内容是不一样的。 7 8 9 10 //new的作用 11 * 1.开辟合适大小的堆空间或者常量区空间 12 * 2.创建对象 13 * 3.调用构造函数 14 * 4 返回开... 阅读全文
摘要:
方法的重载1.方法重载的前提:方法名称必须一样2.构成重载的条件:参数不一样(参数数量不一样,参数类型不一样)方法的可变参数1.可变参数的值的数量可以是0到多个。2.可变参数调用的时候,没有必要将传递的值封装成一个数组,可变参数会自动为您创建一个合适长度的数组。3.如果没有传递任何参数,那么会生成一... 阅读全文
摘要:
C#中方法的调用 1.同一个类中方法的调用: 静态方法可以直接调用静态方法 静态方法不能直接调用非静态方法,静态方法先生成。 非静态方法可以直接调用静态方法 如果静态方法要调用非静态的方法,必须使用实例成员 2.不同类中方法的调用 静态方法,使用类名.静态方法名称() 非静态方法使用,类的实例对象. 阅读全文