Java不支持多inheritance,但隐式地,java中的每个类都扩展了Object并允许一个

在Java中,所有类都隐式地扩展Object类,最重要的是,只能inheritance一个类。 那就是说,Java隐含地允许我们扩展2个类,或者它是Java正在遵循的其他逻辑吗?

你的类扩展了其他类,但它也扩展了Object,所以你仍然在一行inheritance,而不是两行。

不可以。在Java中,类只能从一个类inheritance,默认情况下,这是您引用的Object类。 但是,我们可以指定一个不同的类来inheritance(使用’extends’关键字)。 但是,这个父类本身会有一个父类,依此类推,直到最终我们回到Object类。 也许一个例子会有所帮助:

class Animal { } class Cat extends Animal { } class Tiger extends Cat { } 

在上面的例子中,Tigerinheritance自Cat,它inheritance自Animal(默认情况下)inheritance自Object。

希望这会让事情变得清晰起来。

不可以。你只允许扩展一个类,但是这个类本身可以扩展另一个类。 如果未在extends子句中指定任何超类,则直接从Object扩展。 如果在extends子句中指定了一个类,则从该类扩展,该类将其自己的超类等扩展到Object。

每个未指定扩展名的Java类都会自动扩展Object。 因此,如果从另一个类扩展,将会有一些端点扩展不扩展类,默认为Object。 这会导致每个类都以传递方式扩展Object。

“不,这是对隐式对象inheritance的误解。每个Java类最终都来自Object超类,无论是否有扩展的Object语句。如果扩展应用程序编程接口(API)类,则传递Objectinheritance。通过直接超类,而不是来自超类和Object类。来自Object类的隐式inheritance通过单行父类下行,以确保所有用户定义的类都具有标准的toString(),equals()和hashCode()方法。 ”

其他人在这里回答 – java和Superclasses(Object,Class)中的inheritance

不完全….你可以一次从一个类inheritance,但没有什么能阻止这个类拥有父类本身。

 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace MyExamples { public class Object { static void Main(string[] args) { } public void A1() { } } public class B : Object { public void B1() { } } public class D : B { public void D1() { D obj = new D(); obj.A1(); } } } 

//如果一个类扩展了另一个类,那么就是这样的话我认为它不再扩展对象类//但是父类将实现对象类…这相当于多级inheritance//就像D一样扩展B但B不再扩展对象类//默认情况下扩展对象类。 因此,如果我们创建D的对象,那么我们也可以访问对象类

class A //在内部扩展Object Class

{

}

公共类B扩展A // JVM不会在这里扩展对象类,因为A已经扩展了Object

{

}