- 静态类和静态方法的好处与缺陷?
(1)好处是:在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。
(2)缺陷是:静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法;实例方法则无此限制
2. 静态类与普通类的区别?
(1)静态类:static 关键字
(2)调用 类名.方法
(3)在静态方法中只能访问静态成员 在静态类中只能有静态成员 在非静态类中 即可有非静态成员,也可以有静态成员
3. 重载(Overload )和覆写(Override)的区别
(1) 概念 方法名相同,参数列表不同(参数类型及个数),与返回值无关 方法名,返回值类型,参数类型及个数完全相同
(2)范围 一个类中 继承关系中
(3)限制 没有权限要求 覆写的方法的访问权限不能比父类更严格
4. 接口和类有什么异同
不同点:
(1)不能直接实例化接口。
(2)接口不包含方法的实现。
(3)接口可以多继承,类只能单继承。
(4)类定义可在不同的源文件之间进行拆分。
相同点:
(1)接口、类和结构都可以从多个接口继承。
(2)接口类似于抽象基类:继承接口的任何非抽象类型都必须实现接口的所有成员。
(3)接口和类都可以包含事件、索引器、方法和属性。
5. abstract class和interface有什么区别?
1.抽象类bai(abstract class)
.抽象方法制作声明zhi,不包含具体dao的实现,可以看做是没有重写的虚方法.
.抽象类不能被实例化.具有其他类相同的特性.
.抽象类可以没有抽象方法和抽象属性,但是一旦有了抽象方法,就一定要把这个类声明为抽象类.
.具体派生类必须要覆盖基类的抽象方法.
.抽象类可以派生自另一个抽象类,可以覆盖基类的抽象方法也可以不覆盖,如果覆盖,则其他派生类也必须覆盖他们.
2.接口(interface)
.不能被实例化.
.只能包含实现的方法声明.
.成员可以包括方法,属性,索引器和事件.
.接口中不能包含常量,字段(域),构造函数,析构函数或者静态成员.
.接口中的所有成员默认为是public,因此接口中不能有private修饰符.
.派生类必须实现接口中的所有成员.
.一个类可以直接实现多个接口,接口之中用逗号隔开.
.一个接口可以有多个父接口,实现该接口的类必须实现所有接口中的所有成员