搜索
写经验 领红包
 > 游戏

java面向对象的面试题(java面向对象考试)

导语:JAVAEE 面向对象面试复习题

java面向对象的面试题(java面向对象考试)

选择题

class Test {

public static void main(String[] args) {

String foo = args[1];

String bar = args[2];

String baz = args[3];

}

}

d:\>java Test Red Green Blue

what is the value of baz?

A. baz has value of &34;

B. baz has value of null

C. baz has value of &34;

D. baz has value of &34;

E. baz has value of &34;

F. the code does not compile

G. the program throw an exception

接口选择题:

1)下面关于接口的说法中不正确的是(A C)。

A.接口中所有的方法都是抽象的 错

B.接口中所有的方法都是public访问权限

C.子接口继承父接口所用的关键字是implements

D.接口是Java中的特殊类,包含常量和抽象方法

2)Java语言接口间的继承关系是( )。一个接口可以继承多个接口。

A.单继承 B.多重继承 C.不能继承 D.不一定

3)一个类实现接口的情况是(A)。

A.一次可以实现多个接口 B.一次只能实现一个接口

C.不能实现接口 D.不一定

填空题

1)_____是声明接口的关键字,可以把它看成一个特殊类。接口中的数据成员默认的修饰符是_____,接口中的成员方法默认的修饰符是_____。

2)实现接口的实现类,必须重写接口中的所有________方法。

abstract class 和interface 有什么区别?

从构造方法、成员变量、成员方法来区别;

再从子类、实现类做区别; 答案比较完善;

是否能通过编译?

interface A{

int x = 0;

}

class B{

int x =1;

}

class C extends B implements A {

public void pX(){

System.out.println(x); //super.x A.x

}

public static void main(String[] args) {

new C().pX();

}

}

不可以,x有冲突;

Reference to &39; is ambiguous, both &39; and &39; match

写出程序结果

interface A{}

class B implements A{

public String func(){

return &34;;

}

}

public class Demo{

public static void main(String[] args){

A a=new B();

System.out.println(a.func());

}

}

不能编译;

是否有误?

是否可以通过编译?

abstract class Something {

private abstract String doSomething ();

}

是否可以从一个static方法内部发出对非static方法的调用?编译是否通过?

public class Something {

public static void main(String[] args) {

Something s = new Something();

System.out.println(&34; + doSomething());

}

public String doSomething() {

return &34;;

}

}

静态方法调用实例方法的时候,需要声明实例,然后格式是实例.方法名;

方法前面有static关键字,调用格式可以类名.方法名,也可以是实例.方法名。

谈谈final, finally, finalize的区别(面试)

final:用来修饰常量(成员变量),需要被赋值,不可重复赋值。

final用来修饰方法,如果有子类继承自该来,则子类不能够重写被final修饰的方法。

finally:用来在try块里面。try+finally,也可以try+catch+finally格式;

finalize:?Object类中有finalize()方法,用来清理垃圾,垃圾回收期。

public class Something {

public int addOne(final int x) {

return ++x;

}

}

如下程序是否可通过编译?

public class Something {

public static void main(String[] args) {

Other o = new Other();

new Something().addOne(o);

}

public void addOne(final Other o) {

o.i++;

}

}

class Other {

public int i;

}

是否可以通过编译?

class Something {

int i; //成员变量 ,有默认初始值;为0

public void doSomething() {

System.out.println(&34; + i);

}

}

是否可以通过编译?

接上题

class Something {

final int i;

public void doSomething() {

System.out.println(&34; + i);

}

}

以下代码的运行结果是?

public class Test {

static int x, y, z;

static {

int x = 5;

x--;

}

static {

x--;

}

public static void main(String[] args) {

System.out.println(&34; + x);

}

}

本文内容由小萱整理编辑!