C.输出:a D.输出:b
26、关于下列代码说法正确的是:
public class Foo {
public int add(int a, int b) { return a + b; }
public static void main(String[] args) { Foo foo = null;
System.out.println(foo.add(10, 20)); } }
A.编译错误
B.正常运行,但无结果输出 C.运行输出:30
D.运行时抛出NullPointerException异常 27、下列说法正确的有:
A.class中的constructor不可省略
B.constructor必须与class同名,但方法不能与class同名 C.constructor在一个对象被实例化时执行 D.一个class只能定义一个constructor
28、关于 Java 中继承的特点,下列说法正确的是: A.使类的定义复杂化
B.Java 只支持单继承,不可多继承,但可以通过实现接口来达到多继承的目的 C.子类继承父类的所有成员变量和方法,包括父类的构造方法 D.不可以多层继承,即一个类不可以继承另一个类的子类
1.子类继承父类的成员变量 当子类继承了某个类之后,便可以使用父类中的成员变量,但是并不是完全继承父类的所有成员变量。具体的原则如下:
1)能够继承父类的public和protected成员变量;不能够继承父类的private成员变量;
2)对于父类的包访问权限成员变量,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
3)对于子类可以继承的父类成员变量,如果在子类中出现了同名称的成员变量,则会发生隐藏现象,即子类的成员变量会屏蔽掉父类的同名成员变量。如果要在子类中访问父类中同名成员变量,需要使用super关键字来进行引用。 2.子类继承父类的方法
同样地,子类也并不是完全继承父类的所有方法。
1)能够继承父类的public和protected成员方法;不能够继承父类的private成员方法;
2)对于父类的包访问权限成员方法,如果子类和父类在同一个包下,则子类能够继承;否则,子类不能够继承;
3)对于子类可以继承的父类成员方法,如果在子类中出现了同名称的成员方法,则称为覆盖,即子类的成员方法会覆盖掉父类的同名成员方法。如果要在子类中访问父类中同名成员方法,需要使用super关键字来进行引用。
29、下列程序运行结果是?
30、请看下列代码 class ClassA {}
class ClassB extends ClassA {} class ClassC extends ClassA {} public class Test{
public static void main(String[] args) { ClassA p0 = new ClassA(); ClassB p1 = new ClassB(); ClassC p2 = new ClassC(); ClassA p3 = new ClassB(); ClassA p4 = new ClassC(); <插入代码> } }
下列选项中放置在<插入代码>处,使程序编译正确的是: A.p0 = p1; B.p1 =p2; C.p2 = p4;
D.p2 = (ClassC)p1; 31、程序输出的结果是
class One {
public One() { System.out.print(1); }
class Two extends One { public Two() {
System.out.print(2); } }
class Three extends Two { public Three() { System.out.print(3); } }
public class Numbers { public static void main(String[] argv) { new Three(); }}C A.1 B.3 C.123 D.321 32、下面代码运行结果是:D public class Animal { public String noise() { return \}
class Dog extends Animal {
public String noise() { return \} }
class Cat extends Animal { public String noise() { return \} }
public static void main(String[] args) { Animal animal = new Dog(); Cat cat = (Cat)animal;
System.out.println(cat.noise()); } }
A.peep B.bark C.meow
D.抛出运行时异常
33、下面代码运行结果是: 34、
class SimpleCalc { public int value;
public void calculate() { value += 7; } }
public class MultiCalc extends SimpleCalc { public void calculate() { value -= 3; }
public void calculate(int multiplier) { calculate(); super.calculate(); value *= multiplier; }
public static void main(String[] args) { MultiCalc calculator = new MultiCalc(); calculator.calculate(2);
System.out.println(\ }}
A.Value is: 8
B.Value is: -8 C.Value is: 12 D.Value is: -12
35、下列数组创建和初始化的方式不正确的是: A. public class Test02 {
static final int[] a = { 100,200 };} B. public class Test02 { static final int[] a; static {
a=new int[2]; a[0]=100; a[1]=200; }}
C.public class Test02 { final int[] a; public Test02(){ a=new int[2];
a[0]=100; a[1]=200; }} D.public class Test02 { static final int[] a; static void init() { a = new int[3]; a[0]=100; a[1]=200; }}