1.静态方法是一种特殊的成员方法,它不属于类的某一个具体的实例又叫对象,属于类本身。
2.static:静态字段属于类,为类的所有对象所共用.非静态字段属于某个具体的对象,为特定的对象专有
非静态成员在类的每个实例中都占有一个存储或者说是一个副本,而静态方法为类所共享的它无法判断当前的非静 态成员属于那一个实例。 所以在静态方法不能使用非静态成员。
3接口可由方法、属性、事件、索引器或这4中成员类型的任意组合构成。但接口不能包含字段,并且接口的成员一定是共有的public。
属性和字段区别:属性是类提供给外部调用时用,的可以使用对象.属性设置或读取一个值,比如用get{return id;}set{id = value};字段使用于类内部存储数据的,比如string id;
4.关于抽象类,abstract
抽象类可提供多个派生类可共享的基类的公共定义,但抽象类却不能实例化。
抽象方法没有实现,所以方法定义后无函数体紧跟分号。抽象类的派生类必须实现所有的抽象方法。
注意:抽象类从基类继承虚方法时,抽象类可以使用抽象方法重写该虚方法。(没有函数体);
如果一个类所有方法都是抽象的,该类必须声明为抽象类。说明,不一定是抽象类才可以包含抽象方法。
抽象方法:use abstract并且是没有函数体的。并且在子类(继承的类:子类)中必须重写。
区别vistual方法:
虚方法则有自己的函数体,已经提供了函数实现,但是允许在子类中重写或覆盖(子类不用vistual标记)。重写的子类虚函数就是被覆盖了。
抽象类中不一定全部抽象方法,可以是公共方法,在子类中,可以直接调用(比较专业的说法是:抽象类不可以产生对象,但可以用它的实现类类申明对象)
注意:抽象类虽说不能实例化,但是可以做为类型定义个对象然后用子类实例化。
ClassAbs y= new SunClassAbs();这样后,抽象函数里面的公共public非抽象abstract函数额方法就可以被调用了。(附带说明一下:所有的子类和父类都是这样,父类 name = new 子类();然后是name调用父类的方法);