-
161 votesanswersviews
Java多重继承
为了完全理解如何解决Java的多重继承问题,我有一个经典的问题需要澄清 . 让我说我有类 Animal 这有子类 Bird 和 Horse 我需要创建一个从 Bird 和 Horse 延伸的类 Pegasus ,因为 Pegasus 既是鸟又是马 . 我认为这是经典的钻石问题 . 根据我的理解,解决这个问题的经典方法是制作 Animal , Bird 和 Horse 类接口并从中实现 Pegasu... -
2 votesanswersviews
从具有虚函数的多个继承类派生的类的大小
考虑下面的钻石场景: class Base { int x; public: virtual ~Base(){} }; class Derived1 : virtual public Base { int y; }; class Derived2 : virtual public Base { int z; }; class Derived3 : public... -
64 votesanswersviews
Java 8中的抽象类和接口有什么区别?
在Java中,抽象类和接口之间曾经存在微妙但重要的区别:default implementations . 抽象类可以拥有它们,接口却不能 . Java 8虽然引入了接口的默认实现,但这意味着这不再是接口和抽象类之间的关键区别 . 那是什么? 尽我所知,唯一剩下的差异(除了可能是引擎效率之外的东西)是抽象类遵循传统的Java单继承,而接口可以有多重继承(或者如果你愿意,可以有多个实现) . 这引...