抽象类接口测试

单选题

1.给定java代码如下,编译运行结果是(B)

 class Person {
 	 public static String company;      // 【注意这里有个static,静态变量的值是所有对象共享同一份静态变量,对于静态变量的值如果有二次赋值,则会以最后赋值的结果为准,这里的company一共赋值了三次,最后一次为”程序员“】
 	 public String name;
  	 public int age;
}
public class Demo {
  	public static void main(String[] args) {
   		Person.company="亚马逊";
    	Person p=new Person();
 		p.name="小明";
        p.age=20;
   		p.company="亚牛逊";  

		Person p1=new Person();
   		p1.name="小亮";
   		p1.age=23;
   		p1.company="程序员";   

        System.out.println(p.name+","+p.age+","+p.company);    //小明,20,程序员
   		System.out.println(p1.name+","+p1.age+","+p1.company);  //小亮,23,程序员
  	}
}
A、 小明,20,亚牛逊
小亮,23,程序员
B、 小明,20,程序员
小亮,23,程序员
C、 小明,20,亚马逊
小亮,23,亚马逊
D、 编译出错 

2.以下关于static的说法错误的是 (D)

A、 被static修饰的成员变量属于类,不属于这个类的某个对象
B、 被static修饰的成员可以并且建议通过类名直接访问
C、 静态的加载优先于对象,随着类的加载而加载
D、 每一个类中至少定义一个静态的成员变量【没有这样的规定】

3.在Java语言中,下列关于类的继承的描述,正确的是( B )

A、 一个类可以同时继承多个父类
B、 一个类可以具有多个子类
C、 子类可以使用父类的所有方法
D、 子类支持多继承
  1. 继承是Java面向对象三大特征之一,提高了代码的重用性.下列选项中不包含继承关系的是?(B)

    【继承继承当然要有extends啦】

A、 class Son extends Father{}
B、 class Son implements Inter1{}
C、 interface Inter1 extends Inter2{}
D、 class Son extends Father implements Inter2{}

5.下列代码的运行结果是(A )

class Fu{
    int num = 0;
  	public void show(){
  		System.out.println("父类show"+num);
 	}
}
class Zi extends Fu{
    int num = 1;
  	public void show(){
        super.show();
  		System.out.println("子类show"+num);
    }
}
public class Test{
  	public static void main(String[] args){
  	    Zi zi = new Zi();
        zi.show();
	}
}
A、 父类show0
    子类show1
B、 父类show1
   子类show0
C、 父类show1
    子类show1
D、 父类show0
    子类show0

6.下面描述函数重写错误的是( C ) 【被private、final、static修饰的方法都不能被重写】

A、 要有子类继承或实现
B、 子类方法的权限必须大于等于父类的权限
C、 父类中被private权限修饰的方法可以被子类重写
D、 子类重写接口中的抽象方法,子类的方法权限必须是public的

7.下列代码的运行结果是( D)

class Person{
    public String name="Tom";
    public int age = 18;
    public void eat(){
        System.out.println("吃饭");
    }
}
class Student extends Person{
    public int age = 19;
    public void eat(){
        super.eat();
        System.out.println("吃鸡蛋喝牛奶");
    }
}
public class TestStudent{
    public static void main(String[] args){
	    Student s = new Student();
        System.out.println(s.age);
        s.eat();
    }
}
A、 18
吃鸡蛋喝牛奶
B、 19
吃鸡蛋喝牛奶
C、 18
吃饭
吃鸡蛋喝牛奶
D、 19
吃饭
吃鸡蛋喝牛奶

8.在Java中,下面关于抽象类的描述正确的是(D)

A、 抽象类可以创建对象
B、 抽象类中不能定义构造方法
C、 抽象类中的方法必须都是抽象的
D、 声明抽象类必须带有关键字abstract

9.关于接口和抽象类的区别,说法正确的是(C)

A、 抽象类和接口中只能定义静态变量
B、 抽象类和接口中都只能定义抽象方法
C、 抽象类具备构造方法,接口中没有构造方法
D、 抽象类和接口两者都是,只允许单继承

10关于接口的定义格式,错误的是(C)

A、 public interface MyInter {     			
       void method(); 	
    }
B、 public interface MyInter {     		
        public abstract int method();     			       
        public abstract int show(); 	
    }
C、 public class MyInter {     
        void method(); 		
    }
D、 public interface MyInter {    
         public abstract int method(); 
    }

11接口和类定义如下,选项中代码正确的是?( D)

interface Swim{
    int speed = 10;
    void swimming();
}
class Person{
    String name;
    int age;
}

A:

public class Dog extends Swim(){}

B:

public class Dog extends Swim(){
    public void swim(){}
}

C:

public class Man extends Person implements Swim{}

D:

public class Man extends Person implements Swim{
     public void swimming(){}
}

12关于final以下哪个是错误的©

A、  final变量必须在定义的时候手动赋值
B、 可以定义一个类叫Final
C、 static和final不能一起用  【单例模式还有接口中的常量就有使用的】
D、 final可以用在方法上

13关于四种权限修饰符,按照从大到小的顺序,正确的是(C)

A、 private>默认>protected>public	
B、  public>private>默认>protected
C、 public>protected>默认>private	
D、 public>默认>protected>private

14在java中,已定义了两个接口B和C,要定义一个实现这两个接口的类,以下语句正确的是©

A、 interface A extends B,C
B、 interface A implements B,C
C、 class A implements B,C
D、 class A implements B,implements C

15以下两个类存在继承关系,选项中说法正确的是?(D)

class Person {
    private String name;
    private int age;
    public Person() {
    }
    public Person(String name, int age) {
        this.name = name;
        this.age = age;
    }
    private void eat(){
        System.out.println(name+"在吃饭");
    }
}
public class Student extends Person {
    public Student(String name, int age) {
        super(name, age);
    }
    public void eat(){
        System.out.println("学生在吃饭");
    }
    public void eat2(){
        System.out.println("学生在吃饭");
    } 
}
A、 Student类中的eat()方法是对父类方法的重写。
B、 Student类中的eat2()方法是对父类方法的重写。
C、 Student类中的构造方法是对父类方法的重写。
D、 Student类中没有任何方法是对父类方法的重写。
多选题

16关于继承的描述,正确的是(ABC)

A、 如果子类父类中出现不重名的成员变量,这时的访问是没有影响的
B、 如果子类父类中出现重名的成员变量,这时的访问是有影响的,访问本类的成员变量使用this,访问父类的成员变量使用super
C、 如果子类父类中出现不重名的成员方法,这时的调用是没有影响的
D、 子类中不能出现和父类一模一样的成员方法 

17下列类定义格式正确的是(CD)

A:public class SubClass implements InterA extends SuperClass{}

B:public class SubClass extends SuperClass implements InterA implements InterB {}

C:public class SubClass extends SuperClass implements InterA,InterB {}

D:public class SubClass extends SuperClass implements InterA {}

18下列选项中关于Java中super关键字的说法正确的是(A,C,D)

A、 super关键字是在子类对象内部指代其父类空间的引用
B、 super关键字不仅可以指代子类的直接父类,还可以指代父类的父类
C、 子类可以通过super关键字调用父类的方法。
D、 子类可以通过super关键字调用父类的属性。

19在Java中,下面关于抽象类的描述正确的是( B,D,E)

A、 抽象类本身可以被实例化
B、 如果一个类中有一个方法被声明为抽象的,那么这个类必须是抽象类
C、 抽象类中的方法必须都是抽象的
D、 声明抽象类必须带有关键字abstract
E、 没有抽象方法的类,也可以被定义为抽象类

20在接口中,定义一个抽象方法,以下哪些是合法的格式?(AB)

A、 public void aMethod();
B、 void aMethod();
C、 static void aMethod();
D、 protected void aMethod();

21下列选项中 , 哪些关键字属于权限修饰符(ABC)

A、 public 
B、 private
C、 protected
D、  package

22关于final关键字的使用,说法正确的是(ABC)

A、 final可以修饰类
B、 final可以修饰变量
C、 final可以修饰方法非静态的成员方法
D、 final可以修饰抽象方法

23下列代码能够正确编译的是(ABC )

A:

public class Student{
	final String name;
	public Student(){
		this.name = "张三疯了";
	}
}

B:

public class Student{
	final String name;
	public Student(){
		this.name = "张三疯了";
	}
    
    public Student(String name){
        this.name = name;
    }
}

C:

public class Student{
    final String name = "张三疯了";
}

D:

public class Student{
	final String name ;
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值