-
1、静态类 包含静态属性和方法,被标记为static 静态类不能创建实例,不能被继承。 可以为静态类定义静态构造函数。 2、作用 主要用于基础类库(math类)和扩展方法。 3、如何扩展方法 若有源代码,直接添加一个新方法 如果不能修改单也不是密闭类,可以派生子类扩展 如果以上条件不满足,可以使用静态类扩展方法 3、在静态类中的静态方法中参数中加入this关键,则可以直接利用对象调用方法就可以。 4、总结扩展要求 扩展方法所属的类,必须是static类 扩展方法本身就是static方法 扩展方法的第一个参数类型,必须是this+类名。 例如: Dog类没办法修改,修改Dog类就需要扩展方法,需要一个喂养宠物的方法 static class PetGuide//扩展Dog类的方法 { static public void HowToFreedDog(this Dog dog) { Console.WriteLine("播放如何喂养一直狗狗的视频"); } } ··· Dog dog=new Dog();//Dog类中没有HowToFreedDog();方法 dog.HowToFreedDog();//扩展之后好像Dog类中有这样的方法一样。查看全部
-
静态类和静态成员 1、类的静态成员 成员被标记为static时,就是静态成员。静态成员将会被类的所有势力共享,所有实例都访问统一内存位置。 静态成员跟实例成员分开存放。静态成员存放在堆中。 2、静态成员访问 直接通过类名访问,普通成员需要通过实例访问。 3、静态成员声明周期 独立任何实例,没有实例也可以访问。静态成员使用之前编译器已经帮忙完成初始化。 4、静态函数不能访问实例成员,仅能访问其他静态成员,普通方法可以访问静态成员 5、静态构造函数 用于初始化静态字段 在引用任何静态成员之前,和创建任何实例之前调用。 与类同名,使用static,无参数,没有访问修饰符,普通构造函数可以重载的. 静态函数只能访问静态成员,非静态函数可以访问静态/非静态成员查看全部
-
结构和类 1、不同点 结构是值类型(在栈中),类是引用类型(在堆中) 结构不支持继承,类支持继承 结构不定义默认构造函数,编译器会定义 2、使用场合 结构由于分配内存块,作用域借书即被删除。不需要垃圾回收,用于小型数据结构,传递过程会复制,应该用ref提高效率。 类用于其他需要继承体系的场合。 例如:定义食物是一个不需要长期存储的数据类型,吃完就没有了,所以可以定义一个食物struct查看全部
-
继承 1、语法: class 子类 : 父类 { 子类的内容 } 2、C# 只能单继承,每个类只能继承一个父类,父类可以向上继承祖父类,直到object类 子类继承父类语法: class childclass:parentclass { } 3、object类是所有类的基类,是唯一非派生类查看全部
-
简单来说虚函数(Virtual)已经包含了也必须包含默认的实现,所以在派生类中可以重新实现也可以不实现这些虚函数。 抽象函数(abstract)没有提供默认实现,所以在派生类中必须实现这些抽象函数。 接口中的函数类似于抽象函数,也不提供默认实现,实现接口的类也必须实现这些函数。 但接口可用于多继承,即,类只能从一个类继承,但可同时实现多个接口。查看全部
-
1.构造函数: 即使用与类同名的参数作为方法名;注意:构造函数无返回值类型 2.目的: 实例化对象时能同时调用同名函数,使代码更简洁; 3.带参数的构造函数:构造函数存在形参(public jiaosheng(string name)),这样初始化实例是同时可以调用此方法,并且把name的实参赋给方法; 4.若带的参数为基类内的公有参数,为了统一,将基类创建同样的构造函数。初始化派生类的实例时,需将实参赋值给基类的构造函数:Pet(基类) Dogs派生类;派生类内构造函数后需加上:base(形参); 如:jiaosheng(string name):base(name) 5.调用构造函数顺序 实例成员初始化->基类构造函数->派生类的构造方法查看全部
-
隐藏方法: 1.用new关键字可以隐藏父类的方法 2.用法:new + 访问级别 + 返回类型 + 方法名 + 参数列表(){}查看全部
-
接口 1、接口就是制定一组函数成员,而不实现他们的引用类型,用interface声明。接口函数不能用其他访问修饰符修饰,默认为public。 2、接口用来被实现 例如Cat:ICatchMice{ //实现接口函数 } 3、一个类可以实现多个接口,当一个类同时继承基类和实现接口时,应该将基类写在最前面,用逗号隔开 4、一个类实现接口时,必须实现接口声明的函数。 5、可以通过接口引用调用接口中的方法,也可通过实例调用接口方法。例子 爬树为一个接口,抓老鼠为一个接口,当猫这个类实现这两个接口时, Cat c=new Cat("tom"); 爬树 ci=(爬树)c; c.pashu();//通过实例调用接口方法 ci.pashu();//通过接口引用调用接口方法 只能继承一个基类,可以实现多个接口查看全部
-
1、密闭类:有些类不希望其他人通过继承来修改,禁止产生派生类。 密闭方法;禁止他人重写该方法。 2、用sealed修饰类就是密闭类,修饰方法就是密闭方法 3、若派生类中的重写方法(用override修饰的方法)不想再被重写,则可以同时用override和sealed进行修饰。查看全部
-
pet.speak()->virtual public void speak()->override public void speak()->dog.speak()查看全部
-
哈啊啊啊啊啊啊啊啊查看全部
-
继承: 语法:class ChildClass:ParentClass {}查看全部
-
虚方法查看全部
-
interface关键字来实现接口 interface 接口名 接口的函数体中不能写public关键字但是他就是public类型的方法(默认为public)查看全部
-
使用sealed关键字来实现密闭类查看全部
举报
0/150
提交
取消