首页 > 试题广场 >

如果一个接口Cow有个方法drink(),有个类Calf实现

[单选题]

如果一个接口Cow有个public方法drink(),有个类Calf实现接口Cow,则在类Calf中正确的是?  ( )


  • void drink() { …}
  • protected void drink() { …}
  • public void drink() { …}
  • 以上语句都可以用在类Calf中
子类重写父类方法时,方法的访问权限不能小于原访问权限,在接口中,方法的默认权限就是public,所以子类重写后只能是public
发表于 2017-05-31 17:03:06 回复(29)
重写之后方法的访问权限不能比重写前方法的访问权限低
发表于 2022-02-21 23:25:59 回复(0)
1、接口(JDK1.7及以前)中的方法默认权限就是public,子类重写父类方法时,方法的访问权限不能小于原访问权限,因此子类重写之后也只能是public
Tips:1.9版本,接口中也可以有私有方法
发表于 2021-08-04 15:16:30 回复(0)
子类重写父类方法,方法访问权限必须大于原来权限,接口方法默认是public,实现的接口方法只能public权限。
子类重写的方法,返回类型要在父类方法约束(父类返回类型Map,子类只能是Map子类),参数类型至少大于(父类参数类型hashMap,子类可以是Map)
发表于 2021-01-25 10:22:46 回复(0)
没有说Java版本,本题不严谨
发表于 2020-08-30 07:49:14 回复(0)
子类的访问范围一定不能比父类低
发表于 2017-09-15 09:20:11 回复(0)
1、接口是一种约束和规范,是一种更加更高级的抽象类,抽象类的方法必须是公开的,因为要给人继承和使用啊,不用public,别人怎么看得到,所以在接口实现时,定义的方法修饰符必须是public;因此子类在实现接口重写方法时的修饰符必须是public。
2、另外再扩展一下,接口中没有变量(既然是约束和规范,怎么能够定义一个大家都可以改的东西呢?),只能是常量,接口中定义常量默认的修饰符为public static final。
编辑于 2017-09-12 09:08:24 回复(4)
这道题不严谨,接口新特性,除了抽象方法,还有静态方法,默认方法,私有方法,那这个方法到底是什么方法呢?
发表于 2018-08-15 11:08:44 回复(9)
接口的访问控制符默认是public的,重载后必须访问范围只能大不能小
发表于 2017-05-20 15:57:09 回复(4)
接口中方法默认是public abstract,而子类去实现接口,子类重写父类方法,三同一小一大原则:
1.三同:方法名、形参列表、返回值类型相同;
2.一小:子类抛出的异常应该比父类的更小或者相等;
3.一大:子类的访问修饰符范围应该大于或等于父类的修饰符范围;

所以这题应该选择C, public修饰
发表于 2022-03-11 10:20:43 回复(0)
方法重写:不能有更严格的访问权限
发表于 2017-06-19 22:00:34 回复(0)
重写接口中的方法,访问权限一定是public
发表于 2017-05-25 19:42:52 回复(2)
jdk1.9之后有私有方法,所以这道题还是应该加个限定,限定jdk1.9之前。
jdk1.8的默认方法定义:public default 返回值类型 方法名名(参数列表){}
发表于 2019-11-02 10:54:42 回复(0)
Java方法默认的修饰符是default,可以类中访问,也可以在同一包中的类或子类中访问
发表于 2017-07-27 10:45:53 回复(0)
接口中的抽象方法都是public的,因此子类在实现接口重写方法时的修饰符必须是public。
发表于 2022-01-30 13:11:17 回复(0)
类实现接口 方法只能是公共的 且不是抽象的
发表于 2022-03-27 21:26:06 回复(0)
把Cow看成类了
发表于 2021-05-23 09:03:28 回复(0)
接口的所有函数都是public的
发表于 2018-11-12 17:36:49 回复(0)
接口中的方法默认被public abstract修饰
1.抽象类的方法必须是公开的,因为要给人继承和使用啊,不用public,别人怎么看得到,所以在接口实现时,定义的方法修饰符必须是public;因此子类在实现接口重写方法时的修饰符必须是public。
2.另外再扩展一下,接口中没有变量(既然是约束和规范,怎么能够定义一个大家都可以改的东西呢?),只能是常量,接口中定义常量默认的修饰符为public static final。
JDK1.8之前,接口中的方法默认都为public
JDK1.8,接口中的方法可以为public或者default
JDK1.9,接口中的方法也可以为private
重写之后方法的访问权限不能比重写前方法的访问权限低(重写之后的方法权限更大
编辑于 2024-04-01 15:11:24 回复(0)
接口中的方法默认是public static 而重写方法的访问权限不能比原方法低
编辑于 2024-03-30 14:38:53 回复(0)