我试图了解Java的行为。使用此接口:
public interface IA {}
public interface IB extends IA {}
public class myClass implements IB {}
我正在重载这样的方法:
public void method(IA a);
public void method(IB b);
当使用以下对象调用方法时:
IA a = new myClass();
method(a);
Java为什么使用:
public void method(IA a);
代替
public void method(IB b);
?
谢谢
因为编译器只知道a
是的实例IA
。在编译时根据所涉及表达式的编译时类型确定重载,并且a
is 的编译时类型为IA
。
(将此与覆盖进行比较,在覆盖时,将根据所涉及的实际类型在 执行 时选择方法实现。)
我有两个接口: 和: 从注释中可以看到,不编译。为什么不呢?我该怎么修复它呢?扩展了,所以它应该可以工作,对吗?
本文向大家介绍PHP接口继承及接口多继承原理与实现方法详解,包括了PHP接口继承及接口多继承原理与实现方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP接口继承及接口多继承原理与实现方法。分享给大家供大家参考,具体如下: 在PHP的接口中,接口可以继承接口。虽然PHP类只能继承一个父类(单继承),但是接口和类不同,接口可以实现多继承,可以继承一个或者多个接口。当然接口的继承也是
我想拦截所有java。sql。数据源。getConnection方法使用aspectj时,我使用了以下切入点: 它工作得很好。但我遇到了一些类,例如org。阿帕奇。公猫jdbc。水塘在该切入点不起作用的类层次结构中实现的数据源,其中数据源方法位于不实现数据源的层次结构中的类中,只有最顶层的类实现数据源: BaseDataSource不实现DataSource,但具有所有DataSource方法实现
我有一个DAO接口,其中有多个实现,我希望其中一个是Room实现(Kotlin):
本文向大家介绍PHP接口多继承及tarits实现多继承效果的方法,包括了PHP接口多继承及tarits实现多继承效果的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了PHP接口多继承及tarits实现多继承效果的方法。分享给大家供大家参考,具体如下: 接口多继承 在PHP的面向对象中,接口可以继承接口。PHP类只能继承一个父类(单继承),但是接口可以实现多继承,可以继承一个或者多个接口
我有一个带有注释方法的接口。注释用标记,所以我希望实现者继承它。然而事实并非如此: 所以问题是,为什么没有,尽管它实现了一个标记为的方法,即?