首先,多重继承指的是一个类可以同时从多个的父类那里继承属性和行为,然而我们知道Java为了保证数据安全,它只允许单继承,使用关键字(extends)来完成。但是这样的话,我们在设计程序会遇到一些麻烦。对于小编来说,我不但可以继承父亲的基因也能继承母亲的。所以我们的Java也为我们提供两种方式实现多重继承:
1:使用接口,并使用关键字(implements)来实现。
2:使用内部类来完成。
一、 接口
我们知道子类只能继承一个父类,也就是说只能存在单一继承,但是却可以实现多个接口,这就为我们实现多重继承做了铺垫。
对于接口而已,有时候它所表现的不仅仅只是一个更纯粹的抽象类,接口是没有任何具体实现的,也就是说,没有任何与接口相关的存储,因此也就无法阻止多个接口的组合了。(这里就不写代码来实现,主要看内部类是如何实现的)
**二、内部类 **
看一个人如何既能继承父亲的基因也能继承母亲(直接上代码):
package com.test3.theway;
public class Father {
public String Fa(){
return "父亲的基因";
}
}
package com.test3.theway;
public class Mother {
public String Mo(){
return "母亲的基因";
}
}
package com.test3.theway;
public class Son {
//使用内部来继承
class Father_1 extends Father{
public String f(){
return super.Fa()+1;
}
}
class Mother_1 extends Mother{
public String m(){
return super.Mo()+1;
}
}
public String getFa(){
return new Father_1().f();
}
public String getMo(){
return new Mother_1().m();
}
public static void main(String[] args) {
Son son=new Son();
System.out.println("son的基因是:"+son.getFa()+"和"+son.getMo());
}
}
结果:
son的基因是:父亲的基因1和母亲的基因1
Process finished with exit code 0
这里定义了两个内部类,他们分别继承父亲Father类、母亲类Mother类,且都可以非常自然地获取各自父类的行为,这是内部类一个重要的特性:内部类可以继承一个与外部类无关的类,保证了内部类的独立性,正是基于这一点,多重继承才会成为可能。