美文网首页
Java中关于多重继承的问题

Java中关于多重继承的问题

作者: pjmike | 来源:发表于2017-08-13 10:16 被阅读0次

多重继承的含义

    多重继承指的是一个类可以同时从多于一个的父类那里继承行为和特征,然而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() {};
                    }
        }
外部类里创建多个内部类以达到多重继承的目的,从而解决多重继承的问题,如果不需要解决多重继承问题,大可换其他方式,不必使用内部类。

相关文章

  • Java中关于多重继承的问题

    多重继承的含义 一.用接口实现多重继承 二.用内部类实现多重继承

  • java为什么不支持多重继承

    java之父说多重继承是很少用且被经常误解而错用的功能。 有著名的多重继承钻石问题,两个父类中存在相同方法,该继承...

  • C++11 @5

    类的派生和继承 Java 中虽然没有类的多重继承,但一个类可以实现多个接口,这其实也算是多重继承了。相比 Java...

  • Python多重继承(拓扑排序)(9)

    Python跟Java不同,Java只能单继承(不过有多实现),而Python能够多重继承。其多重继承遵循拓扑排序...

  • Java继承

    一、Java继承详解 Java继承目录:1.为什么要”继承“?2.继承的类型2.1 单继承2.2 多重继承2.3 ...

  • Java继承

    Java继承 一、继承类型 Java不支持多继承,但是支持多重继承 二、继承的特性 子类拥有父类非 private...

  • Java bean与Spring、Spring MVC关系

    Java Bean Java语言欠缺属性、事件、多重继承功能。所以,如果要在Java程序中实现一些面向对象编程的常...

  • 接口,抽象类,内部类

    1.多重继承 Java 并不支持多重继承,多重继承是指一个类可以继承多个类,也就是一个类可以有多个直接父类。 抽象...

  • 当心掉进Python多重继承里的坑

    关于类的知识点里面,有一块是关于多重继承,跟其他主流语言一样,Python也支持多重继承,多重继承虽然有一些好处,...

  • 当心掉进Python多重继承里的坑

    关于类的知识点里面,有一块是关于多重继承,跟其他主流语言一样,Python也支持多重继承,多重继承虽然有一些好处,...

网友评论

      本文标题:Java中关于多重继承的问题

      本文链接:https://www.haomeiwen.com/subject/tabsrxtx.html