我知道Java和C#中不允许多重继承.很多书只是说,不允许多重继承.但它可以通过使用接口来实现.没有讨论为什么不允许它.任何人都可以告诉我为什么不允许它?
我创建了两个bean
class BackPageBean{
String backPage = null;
:
:
:
}
class InformationMessageBean{
String informationMessage = null;
:
:
:
}
Run Code Online (Sandbox Code Playgroud)
现在,如果一个类是反向识别的,那么它将扩展backPageBean,或者如果它需要显示某种消息,那么它会扩展InformationMessageBean.
class BackPageAware extends backPageBean{
}
class InfoMessAware extends InformationMessageBean{
}
someFunction () {
if ( theObject instanceOf backPageBean ) {
prepareTheBackPage ( theObject.getBackPage() );
}
if ( theObject instanceOf InformationMessageBean ) {
showtheInformation ( theObject.getMessage() );
}
}
Run Code Online (Sandbox Code Playgroud)
现在问题是,如果我想要一个既是BackPageAware又是InformationAware的bean,因为我们没有多重继承,那么应该采用什么方法呢?
我听说有一种方法可以欺骗单继承并在Java中实现多重继承.有谁知道如何实现这个(没有使用接口)?
只是出于好奇;-)
Java不允许从多个类继承(仍允许从多个接口继承.),我知道它非常符合经典的钻石问题.但是我的问题是,当从多个基类继承时没有歧义(因此没有钻石问题的可能性)时,java不允许像C++这样的多重继承?