2019年9月7日练习题
- 抽象方法和虚方法的区别?
答:
抽象方法和虚方法的区别在于:虚拟方法有一个实现部分,即方法体,
并为派生类提供了覆盖该方法的选项,相反,抽象方法没有提供实现部分,
强制派生类覆盖方法(否则 派生类不能成为具体类);
~abstract方法只能在抽象类中声明,虚方法则不是;
~abstract方法必须在派生类中重写,而virtual则不必;
~abstract方法不能声明方法实体,虚方法则可以。
- 抽象类的定义?
答:
它的作用就是产生子类的同时给于子类一些特定的属性和方法。
abstract修饰符可以和类、方法、属性、索引器及事件一起使用。
在类声明中使用abstract修饰符以指示某个类只能是其他类的父类。
标记为抽象或包含在抽象类中的成员必须通过从抽象类的子类来实现。
- 局部变量的可访问性不能修改,说法是否正确?
答:
说法正确,局部变量不能被外界访问,若能被外界访问,则叫类变量或全局变量。
故访问修饰符对于局部变量而言就没有发挥用处的地方。
- final变量有那些特点?
答:
final作为对象成员存在时,必须初始化;但是,如果不初始化,也可以在类的构造函数中初始
因为java允许将数据成员声明为final,却不赋初值。
但是,空白的finals必须在使用之前初始化,且必须在构造函数中初始化。
- 编译时发生异常和运行时发生异常,处理方式有什么不同?
答:
编译时异常必须显示处理,程序员来处理,
运行时异常交给虚拟机,虚拟机能处理则自动处理。
10.类头若无package语句,是否会报错?
答:
不会, package语句是Java源文件的第一条语句。
(若缺省该语句,则指定为无名包。),如果想在另一个类里面引用包里面的类,
要把名字写全。(相当用文件的绝对路径访问)或者用import导入。
11.解释,以下两个反射函数的区别。
Class c=Class.forName(args[0]);
Method m[]=c.getDeclaredMethods();
Method mn[]=c.getMethods();
答:
getMethods()返回某个类的所有公用(public)方法包括其继承类的公用方法,
包括它所实现接口的方法。
getDeclaredMethods()对象表示的类或接口声明的所有方法,
包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。
包括它所实现接口的方法。
12.finalize方法什么时候会被调用?
答:
对象被回收前,
这应该是种异常处理,是一种数据拯救。
20.那些技术用在WEB开发中实现会话跟踪实现?
答:
会话跟踪技术:URL重写、隐藏表单域、Cookie、Session。