当前位置:网站首页 > Java基础 > 正文

java基础接口编码题



1. (单选题)

将下列(A、B、C、D)哪个代码替换下列程序中的【代码】不会导致编译错误?

interface Com {

  int M = 200;

  int f();

}

class ImpCom implements Com {

  【代码】

}

  • A. public int f(){return 100+M;}
  • B.  int f(){return 100;}
  • C. public double f(){return 2.6;}
  • D. public abstract int f();

正确答案:A   因为接口中定义的方法默认是 public abstract 类型的,而实现类中需要使用 public 访问修饰符来覆盖(实现)接口中的方法。选项 A 中的方法签名与接口中定义的方法 f() 一致,包括返回类型和参数列表,因此可以正确重写。

2. (单选题)

挑错题(ABCD注释标注的哪行代码有错误?)

 public interface Com {     

     abstract void cry();       //A    

      public int x = 0;          //B      

      static int y = 0;          //C } 

    abstract class Cat implements Com {    

         abstract void cry();       //D 

   } 

}

  • A. A
  • B. B
  • C. C
  • D. D

正确答案:D  因为抽象类继承一个接口,至少重写接口中的一个抽象方法,非抽象类继承一个接口,需要重写接口中的全部方法。

3. (单选题)

挑错题(ABCD注释标注的哪行代码有错误?)

interface Com {

   int MAX = 100;  //A

   void f();

}

abstract class Animal implements Com {

   int MIN ;      //B

}

class Dog extends Animal{

   public void f() {

        MIN = 10;     //C

      MAX = 200;    //D

   }  

}

  • A. A
  • B. B
  • C. C
  • D. D

正确答案:D  接口中的字段默认是 ,即常量,一旦赋值就不能再改变。因此,接口中的字段  赋值为 100 后不能再修改。

4. (多选题)

下列接口中标注的(1、2、3、4)中,哪两个是错误的? 

 interface Takecare {    

       protected void speakHello();       //1    

       public abstract static void cry();  //2   

       int f();                            //3    

       abstract float g();                //4 

}

  • A. 1
  • B. 2
  • C. 3
  • D. 4

正确答案: AB   在接口中的方法默认是 ,因此不可以使用  和  修饰符。此外,abstract和static不可以同时修饰一个方法,因此,接口中的方法应该是:

5. (判断题)
接口中也能声明变量。

  • A. 对
  • B. 错

正确答案:错   java基础接口编码题

  1. 声明变量:声明变量是指告诉编译器变量的名称和类型,但并不分配内存空间。在声明变量时,编译器只是知道这个变量的存在,但并不会为其分配内存空间。例如:
     
  2. 定义变量:定义变量是指在声明变量的基础上,为变量分配具体的内存空间,并可能为变量赋初值。定义变量意味着变量的创建过程,编译器为变量分配了内存空间,从而可以在程序中使用这个变量。例如:
     

 注意在接口中可以定义变量,不能声明变量,并且变量的类型为public static final

6. (判断题)

Java8之后,接口中也能定义非抽象的不加default修饰的方法。

  • A. 对
  • B. 错

正确答案:错 

8. (判断题)
Java9之后,接口中可以定义private方法。

  • A. 对
  • B. 错

正确答案:对

9. (判断题)
接口中的常量可以不指定初值。

  • A. 对
  • B. 错

正确答案: 错

10. (判断题)

可以在接口中只声明常量,不定义任何方法。

  • A. 对
  • B. 错

正确答案:对

11. (填空题)

请说出下面程序中【代码1】和【代码2】的输出结果。

 

正确答案: 15.0,8     

在给定的程序中,首先创建了一个接口 ,其中包含一个抽象方法 ,然后创建了一个类 ,该类实现了接口 ,并且还定义了一个额外的方法 。

在  类的  方法中,首先创建了一个  类的实例 ,并通过接口  的引用进行引用。然后分别调用了  和 。

  1. 在【代码1】中,调用 ,实际调用的是类  中实现的  方法,即 ,将参数  和  相乘得到结果 。
  2. 在【代码2】中,将  强制转换为类  的实例 ,然后调用 ,由于  方法不是接口  中定义的方法,所以无法通过接口引用调用,需要先将对象转换为  类型后再调用。调用  方法返回值为 ,即 ,结果为 。

将类  的实例赋值给接口  的引用是利用接口的多态性的一种表现。这种做法实际上是将一个子类的实例赋值给它的父接口的引用,从而实现对该子类实例的统一管理和操作。

通过将类  的实例赋值给接口  的引用,我们可以使用接口  中定义的方法来操作类  的实例,这种做法使得程序具备更大的灵活性和扩展性。同时,这样的设计也符合面向接口编程的思想,降低了代码的耦合度,使得程序更容易维护和扩展。

12. (填空题)

请说出下面程序中【代码1】和【代码2】的输出结果。

 

正确答案:18,15

  • 接口引用 :
    •  是接口  的引用,指向了对象 ,即  类的一个实例。
    • 调用  实际上调用的是  类中实现的  方法,计算结果为 。
  • 抽象类引用 :
    •  是抽象类  的引用,同样指向了对象 。
    • 调用  也是调用  类中的  方法,计算结果为 。

 在Java中,当一个类实现了一个接口或者继承了一个抽象类时,可以通过接口或抽象类的引用来引用该类的对象,并调用相应的方法。这种机制允许我们在不需要知道具体对象类型的情况下,通过统一的接口或抽象类引用来操作对象。

接口引用和抽象类引用的作用

  1. 接口引用
    • 当一个类实现了某个接口,可以使用该接口的引用来引用这个类的对象。
    • 接口引用只能调用接口中定义的方法或者静态方法,并且默认方法可以通过对象实现。
  2. 抽象类引用
    • 当一个类继承了某个抽象类,可以使用抽象类的引用来引用这个类的对象。
    • 抽象类引用可以调用抽象类中定义的方法,包括抽象方法和非抽象方法。

13. (填空题)

请说出下面中【代码】的输出结果

 

正确答案:18:12:7:6  复习完基础知识相信这题目不是问题

基础知识复习:

1、default关键字

在Java中,关键字用于定义接口的默认方法。默认方法是在接口中提供了方法的默认实现,这样在实现该接口的类中,如果没有重写该默认方法,就会直接继承接口中的默认实现。默认方法允许接口的演化,可以向现有接口添加新的方法,而不会影响现有的实现类。这对于接口的演化非常重要。假设你有一个接口,并且已经有多个类实现了这个接口。现在你需要在接口中添加一个新方法,但你又不想修改所有已有的实现类。使用默认方法,你可以在接口中添加新方法而不破坏现有的代码,因为已有的实现类可以选择是否实现新的默认方法,而不会强制性地要求它们这样做

在给定的例子中,接口  中的  和  方法就是默认方法。这意味着,实现  接口的任何类如果没有提供这些方法的具体实现,就会直接继承接口中定义的默认实现。

2、接口中的静态方法

版权声明


相关文章:

  • java基础很差还要往下学吗2024-10-21 16:02:06
  • java基础语法标识符2024-10-21 16:02:06
  • java语言设计基础第6版2024-10-21 16:02:06
  • 南京零基础学java2024-10-21 16:02:06
  • java程序设计基础11版 英文2024-10-21 16:02:06
  • java基础教程递归2024-10-21 16:02:06
  • JAVA游戏基础代码2024-10-21 16:02:06
  • java数组基础拓展2024-10-21 16:02:06
  • java基础日历2024-10-21 16:02:06
  • java基础一般问什么软件2024-10-21 16:02:06