如果Java只能扩展一个类,并且每个类扩展java.lang.Object
,它如何扩展另一个类?为什么每个班级都没有写extends Object
?
答案 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
Car
和Truck
答案 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的原因是它隐式发生。