Java对于多重继承是怎么实现的
Java对于多重继承是怎么实现的?
首先回答这个问题之前,我需要说明下什么是继承?什么是多重继承和单继承?java采用何种机制来实现多重继承:
1.1继承是面向对象编程的一种特性,是保留原有类功能的前提下拓展或改写部分功能,实现代码复用的方式.。
1.2单继承就是一个类只可以继承自一个父类,多继承是指一个类可以同时继承多个父类。
1.3java中使用的是单继承,也就是一个类有且只能有一个父类,java中可以使用接口实现来实现类似多继承的效果。
2.下面着重介绍Java中如何实现多继承:
如下是多重继承示例:
interface CanFight{
void fight();
}
interface CanSwim{
void swim();
}
interface CanFly{
void fly();
}
class ActionCharacter{
public void fight(){
System.out.println("I can fight!");
}
}
class Hero extends ActionCharacter implements CanFight,CanSwim,CanFly{
public void swim(){
System.out.println("I can swim!");
}
public void fly(){
System.out.println("I can fly!");
}
}
public class Adventure {
public static void t(CanFight x){x.fight();
}
public static void u(CanSwim x){x.swim();
}
public static void v(CanFly x){x.fly();
}
public static void w(ActionCharacter x){x.fight();
}
public static void main(String[] args){
Hero h=new Hero();
t(h);
u(h);
v(h);
w(h);
}
}
从这个实例中,不能看出Java对于多继承是如何实现的。
运行结果:
I can fight!
I can swim!
I can fly!
I can fight!
以上就是Java对于多继承是如何实现的说明
2017-05-16 · 百度知道合伙人官方认证企业
Java中为了保证数据安全,只能够单继承,也就是说一个类只能有一个父类。既然类无法多重继承,那么只能使用接口实现,因为一个类可以实现多个接口。只要根据需求,将相关方法放在不同的接口中,让子类去实现,也可以达到多重继承的效果。
下面是一个使用接口实现多重继承的例子:
interface Plant{
void grow();
}
interface Flower {
void bloom();
}
interface Apple {
void fruit();
}
class RedApple implements Plant,Flower,Apple{
public void grow(){
System.out.println("RedApple isgrowing.");
}
public void bloom(){
System.out.println("RedApple isblooming.");
}
public void fruit() {
System.out.println("RedApple isfruiting.");
}
}