一个类如何在Java中扩展两个类?

时间:2013-06-21 18:02:43

标签: java class object extend

如果Java只能扩展一个类,并且每个类扩展java.lang.Object,它如何扩展另一个类?为什么每个班级都没有写extends Object

8 个答案:

答案 0 :(得分:8)

  

如果java只能扩展一个类,并且每个类扩展java.lang.Object,它如何扩展另一个类?

当你说A扩展B时,则意味着A扩展B而B扩展Object。一个类可以继承自另一个类,它可以从另一个类继承而在链的顶部是java.lang.Object。 Java不支持多继承,但支持多级继承。

  

为什么每个班级都没有写“extends Object”?

所有类都隐式地扩展Object,因此它将是冗余编码。

答案 1 :(得分:2)

由于java.lang.Object是Java中每个对象的父对象,因此您不必显式写extends Object

您可以随时扩展任何课程。如果您需要具有2个类的行为 - 您需要使用该接口

答案 2 :(得分:2)

Java中的每个类都隐式地扩展 Object,并且您只有扩展一个类和无限数量接口的权限。

如果你没有编写构造函数,那么每个类都有一个默认构造函数。

所以当你说

class A{

}

实际上看起来像这样:

class A extends Object{
    A(){
        super();
    }
}

但是当你说的时候说

class B extends A

在这种情况下,类B将具有类A的特性,并且因为A扩展了Object,所以类B也将继承类Object。

A - >对象
B - >一个
所以
B - >对象

答案 3 :(得分:1)

允许你扩展的唯一一个也最终扩展了类Object。因为你没有延长两次。

答案 4 :(得分:0)

Java不支持多重继承,您只能直接继承(可以这么说)。你使用接口,这是IMO更强大的。我从不需要多重继承,但我大量使用接口。 基本上不是创建第二个类,而是定义一个接口,然后让一些类实现它。这可以是不同的类或相同。

所有类都已从Objects派生,您无需专门编写。

答案 5 :(得分:0)

以下各项都可以将对象扩展到左侧:
对象 - >车辆 - >汽车 - > Coupe - >卡玛洛

例如,Coupe正在扩展Car,而不是(直接)扩展Object ......只是如果你继续上升链条,你最终会到Object

但是,Coupe CarTruck

{{1}}

答案 6 :(得分:0)

这是一个显示Java的java.lang.Number类的类层次结构的示例。

http://docs.oracle.com/javase/tutorial/java/data/numberclasses.html

如您所见,Integer类继承自Number,而Number继承自Object。因此,您可以通过链接来继承多个类。

答案 7 :(得分:0)

在面向对象编程(OOP)中,继承描述了对象的两种类型或类之间的关系,其中一个被称为另一个的子类型或子类。

A -> B -> C -> D

子项继承父项的功能,允许共享功能。例如,可以创建一个变量类Animal,其中包含吃等等功能。然后定义一个继承这些功能的子类型Dog,而不必显式编程,同时添加追逐猫等新功能。

多重继承允许程序员同时使用多个层次结构,例如允许Dog从Robot角色和Animal继承并从所有这些类中访问功能。

        A
       / \
      C   D
       \ /
        E 

Java使用第一个模型,因此继承自object和另一个类不会导致问题,因为它本质上是分层的。

Object -> Animal -> Dog -> Pit Bull

每个对象不需要扩展Object的原因是它隐式发生。