首页 > 试题广场 >

1.将下列(A、B、C、D)哪个代码替换下列程序中的【代码】

[单选题]
1.将下列(A、B、C、D)哪个代码替换下列程序中的【代码】不会导致编译错误?
interface Com{
    int M=200;
    int f();
}
class ImpCom implements Com{
    【代码】
}


  • public int f(){return 100+M;}
  • int f(){return 100;}
  • public double f(){return 2.6;}
  • public abstract int f();
此题两个考点:1、实现类可以获取接口中的属性。
2、实现需要是public方法
发表于 2021-04-23 23:34:19 回复(8)

1、必须实现接口中所有的方法。

在实现类中实现接口时,方法的名字、返回值类型、参数的个数及类型必须与接口中的完全一致,并且必须实现接口中的所有方法。

2、接口实现类相当于子类,子类的访问权限是不能比父类小的。

接口中所有方法默认都是public,至于为什么要是public,原因在于如果不是public,那么只能在同个包下被实现,可访问权限就降低很多了,那么在实现类中,实现的类相当于子类,子类的访问权限是不能比父类小的,而在java中一个类如果没有权限的修饰符,默认是friendly(同一个包内的其它类才可访问),所以在实现类中一定要写public

发表于 2021-07-06 19:17:27 回复(8)
B 方法在类不写访问权限修饰,默认则是为default,与接口中public 不一致
C 方法的返回类型与接口不一致
D 方法必须被实现
故选A
发表于 2022-01-10 15:36:34 回复(0)
正确答案是A,已敲代码验证
发表于 2021-04-15 18:44:29 回复(10)
Cc-头像 Cc-
接口的成员特点是:1. 成员变量修饰符 默认 public static final 2.成员方法修饰符 默认 public abstract 对于c 没有满足两小一大
发表于 2021-04-23 08:19:13 回复(0)
只有A是对的,类实现了接口,可以直接使用接口中的变量,如果类中没有定义M,那么直调用的就是父类中的变量M。如果类中有定义M,则不加super.是调用自己的。
发表于 2021-04-15 16:45:10 回复(1)
<p>什么鬼,c++题目来这个?</p>
发表于 2020-09-29 23:30:08 回复(2)
这。。。

发表于 2021-04-22 10:40:53 回复(1)
如果没有修饰符,默认是default,仅在当前类和同一个包下可以访问。
接口实现类相当于子类,
子类重写父类方法,三同一小一大原则:
三同:方法名相同,形参列表相同,返回值类型相同;C、D车错误
一小:子类方法声明抛出的异常比父类方法声明抛出的异常更小或者相等
一大:子类方法的访问修饰符应该比父类方法更大或者相等;本题B选项就不符合,default < public,
所以正确答案是A选项,实现类可以获取接口中的属性。
发表于 2021-12-20 11:09:34 回复(0)
a确实没错,c错了,已敲代码验证
发表于 2021-04-15 17:45:41 回复(0)
接口中的方法,默认都是public的,一个类实现了此接口,对于方法需要重写(私有方法除外),重写后的方法访问权限要不小于接口的原方法
发表于 2022-05-27 23:58:39 回复(0)
1.实现类可以直接调用接口中的变量:
    接口中只有一种变量:默认是被public static final 修饰,即常量
2.方法的重写
    1.方法名和参数列表要完全相同
    2.重写的方法权限 大于 被重写的方法。此处是抽象方法,默认修饰是public abstract。
    3.返回值类型:如果是void 和基本数据类型,则要完全一致
                            如果是引用类型A,则重写的方法的返回值类型 要求是 A或A的子类
    4.异常类型:不能大于原来的异常类型。
ps:接口中,JDK7.0及以前是只有常量和抽象方法。JDK8.0多了静态方法和默认方法。
发表于 2021-12-13 10:27:50 回复(0)
接口中的方法默认都是 public 和 abstract 的。所以在实现接口的类中,实现方法时都要在方法前加上 public 修饰符。
发表于 2021-09-04 17:49:04 回复(0)
接口中的抽象方法默认的修饰符是public abstract,后重写,两同两小一大可知,前边修饰符应该是public
发表于 2021-07-13 15:29:50 回复(1)
注意读题,是选择编译正确的。 类要实现接口,就要实现接口里面的方法,因此这里需要实现f()这个方法。接口种声明的方法默认是public修饰的,因此,实现Com方法的时候就需要永public修饰并实现。所以选择A选项。 B.没有public修饰符 C.原接口中返回值类型是int,这里是double,不能修改 D.abstract是抽象方法的修饰词,在这里用显然不正确,且方法体中没有返回值,故D选项错误。
发表于 2022-07-07 07:57:30 回复(0)
实现类中实现的方法访问权限需要大于等于接口中方法的权限,接口中方法权限默认为public
发表于 2021-11-26 12:32:15 回复(0)
实现接口的方法加public 可获取借口中属性
发表于 2021-08-13 12:54:18 回复(0)
重写抽象方法
发表于 2021-08-04 22:53:24 回复(0)
实现接口,需要实现接口里的方法(变为public),需要实现接口中的属性
发表于 2021-06-18 16:43:31 回复(0)
a中的返回值M没有定义。
发表于 2021-04-15 10:25:44 回复(2)