当前位置: 代码迷 >> J2SE >> 什么叫 Java 不提供类的多重继承,但提供接口多重继承机制?解决办法
  详细解决方案

什么叫 Java 不提供类的多重继承,但提供接口多重继承机制?解决办法

热度:81   发布时间:2016-04-24 01:11:22.0
什么叫 Java 不提供类的多重继承,但提供接口多重继承机制?
什么叫 Java 不提供类的多重继承,但提供接口多重继承机制?
Java 是如何实现多接口的? 这个应该如何解释?能否给一个简单例子。

2 请问如果 一个 类 A , 和另一个类B B ectends A
 如果我 在A和B中 使用了 OverLoding 请问如何 程序是如何执行的?
我是 需要建立一个Object 在使用A 中的同名方法还是直接建立 Object B 然后在使用 A的同名方法?

------解决方案--------------------
有一个俗套的说法:
继承类是亲爹,只能有一个,实现接口是干爹,可以有多个.

class A extends 类B implements 接口C,接口D

这里的extends表示的是类继承,implements 表示的是接口实现.
你不能exnteds多个类,但你可以implements 多个接口.

OverLoding叫重载吧.重截是发生内一个类中的.覆盖是发生面父类(被继承类)与子类之间的.
子类与父类有个完全一样的方法.主要是直接使用Object B的时候发生的.


A a = new B();
a.aa();//假设B覆盖了A中的aa()方法.这时候调用的就是B中的aa()的方法


------解决方案--------------------
不提供多重继承就是继承要保持唯一性,而多接口是指可以实现多个接口!

interface A()
{
}

interface B()
{
}

public class C()
{
}

public class Test extends C implements A,B
{
}

记住:实现了某个接口,一定要实现这个接口中定义的所有方法!(如果是抽象类实现的则可以不实现)
------解决方案--------------------
A a = new B(); 声明A,实例化的是B,
然后a.aa();
如果B覆盖了A中的aa()方法.这时候调用的就是B中的aa()的方法 .
这是一种多态行为!
------解决方案--------------------
如果允许多集成
那么如果两个父类有同名方法、调用子类的这个方法名就搞不清调谁。
但是允许实现多个接口,因为接口是没有具体实现的。
  相关解决方案