Java不支持多重继承,但java中的每个类都隐式扩展了Object并允许再增加一个



在Java中,所有类都在隐式扩展Object类,除此之外,最多只能继承一个类。那么,Java是允许我们扩展2个类,还是Java遵循其他逻辑呢?

您的类扩展了另一个类,但它也扩展了Object,所以您仍然处于一行继承中,而不是两行继承中。

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

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

在上面的示例中,Tiger继承自Cat,后者继承自Animal,后者(默认情况下)继承自Object。

希望这能稍微澄清一下。

否。您只能扩展一个类,但这个类本身可以扩展另一个类。如果在extends子句中没有指定任何超类,则直接从Object进行扩展。如果您在extends子句中指定了一个类,那么您将从这个类(它扩展了自己的超类等)扩展到Object。

每个没有指定扩展的Java类都会自动扩展Object。因此,如果您从另一个类进行扩展,则会有一些端点扩展不扩展类,并且默认为Object。这会导致每个类都对Object进行传递性扩展。

"不,这是对隐式对象继承的误解。无论是否有扩展对象语句,每个Java类最终都是从object超类派生而来的。如果扩展应用程序编程接口(API)类,Object继承是通过直接的超类传递的,而不是从超类和Object类传递的。Object类的隐式继承通过一行父类进行,以确保所有用户定义的类都具有标准的toString()、equals()和hashCode()方法。"

其他人在这里回答-java和超类(Object,Class)中的继承

不完全是。。。。您可以一次从一个类继承,但没有什么可以阻止这个类本身具有父级。

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();
        }
    }
}

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

class A//内部扩展对象类

}

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

}

相关内容

最新更新