Java中关于多重继承的问题

Java中关于多重继承的问题

标签(空格分隔): Java


多重继承的含义

    多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而Java为了保证数据安全,它只允许单继承。
    有时候我们确实是需要实现多重继承,以达到不同的需求。而且现实生活中也真正地存在这样的情况,比如遗传:我们即继承了父亲的行为和特征也继承了母亲的行为和特征。幸运的是,Java还是为我们提供了两种方式让我们曲折来实现多重继承:接口和内部类。

一.用接口实现多重继承

 Java通过采用实现多个接口和继承一个父类的形式来达到多重继承的效果


interface CanFight {
    void fight();
}
interface CanSwim {
    void swim();
}
interface CanFly {
    void fly();
}
class ActionCharacter {
    public void fight() {

    }
}


class Hero extends ActionCharacter implements CanFight,CanFly,CanSwim {

    /**
     * Hero沒有显示提供fight()的定义,因为所继承的类中包含fight()方法,所有可以
     * 成功创建Hero对象
     * 
     */
    @Override
    public void swim() {
        // TODO Auto-generated method stub

    }

    @Override
    public void fly() {
        // TODO Auto-generated method stub

    }

}

二.用内部类实现多重继承

    如果没有内部类提供的,可以继承多个具体的或抽象的类的能力,一些设计与编程问题就很难解决,从这个角度看,内部类使得多重继承的解决方案变得完整。也就是说,如果拥有的是抽象的类或具体的类,而不是接口,那就只能用内部类才能实现多重继承。`
    例子:
    class Dee1{}
    abstract class E {}
    class Cer1 {
        Dee1 makeD() {
                return new Dee1() {};
                }
        E makeE() {
                return new E() {};
                }
    }
外部类里创建多个内部类以达到多重继承的目的,从而解决多重继承的问题,如果不需要解决多重继承问题,大可换其他方式,不必使用内部类。
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值