关于Java中的多态,以下说法不正确的为( )。(选择一项)
A 多态不仅可以减少代码量,还可以提高代码的可扩展性和可维护性
B. 把子类转换为父类,称为向下转型,自动进行类型转换
C. 多态是指同一个实现接口,使用不同的实例而执行不同的操作
D. 继承是多态的基础,没有继承就没有多态
编译运行如下Java代码,输出结果是( )。(选择一项)
class Base {
public void method(){
System.out.print ("Base method");
}
}
class Child extends Base{
public void methodB(){
System.out.print ("Child methodB");
}
}
class Sample {
public static void main(String[] args) {
Base base= new Child();
base.methodB();
}
}
A Base method
B. Child methodB
C. Base method
Child methodB
D. 编译错误
3. 在Java中,关于引用数据类型的类型转换说法正确的是( )。(选择二项)
A 引用数据类型的类型转换有向上转型和向下转型
B. 向下转型,必须转换成其真实子类型,而不能随意转换
C. 向下转型是自动进行的,也称隐式转换
D. 向上转型可以使用instanceof操作符来判断转型的合法性
4. 给定如下Java程序,Test类中的四个输出语句输出结果依次是( )。(选择一项)
class Person {
String name="person";
public void shout(){
System.out.println(name);
}
}
class Student extends Person{
String name="student";
String school="school";
}
public class Test {
public static void main(String[ ] args) {
Person p=new Student();
System.out.println(p instanceof Student);
System.out.println(p instanceof Person);
System.out.println(p instanceof Object);;
System.out.println(p instanceof System);
}
}
A true,false,true,false
B. false,true,false,false
C. true,true,true,编译错误
D. true,true,false,编译错误
5. Person类和Test类的代码如下所示,则代码中的错误语句是( )。(选择一项)
public class Person {
public String name;
public Person(String name) {
this.name = name;
}
}
public class Test {
public static void main(String[] args) {
final Person person = new Person("欧欧");
person.name = "美美";
person = new Person("亚亚");
}
}
A. final Person person = new Person("欧欧");
B. person.name = "美美";
C. person = new Person("亚亚");
D. 没有错误
6. 如下Java代码运行的结果是( )。(选择一项)
public class Test {
final int age;
public Test(){
age=10;
}
public static void main(String[ ] args) {
System.out.println(new Test().age);
}
}
A 输出:0
B. 输出:10
C. 输出:null
D. 运行时出现异常
7. 以下代码中错误的语句是( )。(选择一项)
**public class Something{
public static void main(String[] args){
final Other o=new Other();
new Something().addOne(o);//1
}
public void addOne( Other o){
o.i++;//2
o = new Other();//3
}
}
class Other{
public int i;
}**
A 1
B. 2
C. 3
D. 没有错误
8. 下列选项中,关于Java的抽象类和抽象方法说法正确的是( )。(选择二项)
A 抽象类中可以含有0个或多个抽象方法
B. 抽象类中不可以有构造方法
C. 一个类中若有抽象方法,则这个类必为抽象类
D. 子类必须重写父类所有的抽象方法
9. 在Java中关于abstract关键字,以下说法正确的是( )。(选择两项)
A abstract类中可以没有抽象方法
B. abstract类的子类也可以是抽象类
C. abstract方法可以有方法体
D. abstract类可以创建对象
10. 以下选项可替换题目中//add code here而不产生编译错误的是( )。(选择二项)
public abstract class MyClass{
public int constInt=5;
//add code here
public void method( ){
}
}
A public abstract void method(int a);
B. constInt =constInt+5;
C. public int method( );
D. public abstract void anotherMethod( );
11. 在Java接口中,下列选项中属于有效的方法声明是( )。(选择二项)
A public void aMethod( );
B. final void aMethod( );
C. void aMethod(){ }
D. private void aMethod( );
12. 以下选项中关于匿名内部类的说法正确的是( )。(选择二项)
A. ****匿名内部类可以实现多个接口,或者继承一个父类
B. 匿名内部类不能是抽象类,必须实现它的抽象父类或者接口里包含的所有抽象方法
C. 匿名内部类没有类名,所以匿名内部类不能定义构造方法
D. 匿名内部类可以直接访问外部类的所有局部变量
13. 接口定义正确的说法是( )。(选择二项)
A. 接口中只能定义常量和抽象方法
B. 接口中可以定义普通方法和普通变量
C. 接口可以被new,抽象方法不行
D. 接口不可以被继承,只能被实现,也可以被多个类实现