下面是我的每一次面试和笔试的一些题目存在的问题总结,如有错误请多多指正。
1.下列说法错误的有(AD)
A. 在类方法中可用this来调用本类的类方法。
B. 在类方法中调用本类的类方法时可直接调用。
C. 在类方法中只能调用本类中的类方法。
D. 在类方法中绝对不能调用实例方法。
A:this指代调用此方法的对象而不是类,类方法中用this调用类方法意思是类去调用类方法,因此错误。
C:在类方法中可以调用不同类的类方法,因为都不需要实例化对象。
D:咋一看是正确的,但仔细想如果在类方法中实例化一个类的对象,然后用这个对象调用自己的实例方法是正确的。
如果D选项表述为不能直接调用则是正确的。
2. 接口中变量和方法的定义在接口中以下哪条定义是正确的?(AB)
A.void methoda()
B.public double methoda();
C.public final double methoda();
D.static void methoda(double d1);
E.protected void methoda(double d1);
错误提示:only public, abstract, default, static and strictfp are permitted。对于static我一直存在着疑惑但是java8新特性中有两条提出:1.接口中允许static修饰接口方法,但是必须有方法体,并且可以实现,也可以直接被调用。2.接口中允许defalut修饰接口方法也叫扩展方法,在实现该接口时,该默认扩展方法在子类上可以直接使用,它的使用方式类似于抽象类中非抽象成员方法。如下a()方法就是default修饰的。