Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么构成间接继承?_Java_Inheritance - Fatal编程技术网

Java 什么构成间接继承?

Java 什么构成间接继承?,java,inheritance,Java,Inheritance,当我们说“所有类直接或间接地继承自类对象”“是什么意思?什么构成了一个间接继承其间接超类中声明的方法的类 我们是否可以说,一个类间接继承了它的一个间接超类中声明的方法,而不管在超类中定义的方法在继承层次结构中向下传播时是否被重写,因此,像上面这样的注释是基于这样一个事实的,即子类继承了某个具有与超类中声明的相同签名的方法 或者,我们只能说一个类间接继承了它的一个间接超类中声明的方法当且仅当该类继承了它的间接超类中声明的方法时,也就是说,该方法在继承层次结构向下传播时未被重写,类继承方法的实现与其

当我们说“所有类直接或间接地继承自类
对象”
“是什么意思?什么构成了一个间接继承其间接超类中声明的方法的类

我们是否可以说,一个类间接继承了它的一个间接超类中声明的方法,而不管在超类中定义的方法在继承层次结构中向下传播时是否被重写,因此,像上面这样的注释是基于这样一个事实的,即子类继承了某个具有与超类中声明的相同签名的方法


或者,我们只能说一个类间接继承了它的一个间接超类中声明的方法当且仅当该类继承了它的间接超类中声明的方法时,也就是说,该方法在继承层次结构向下传播时未被重写,类继承方法的实现与其间接超类中定义的实现相同。

通过间接继承,它们意味着您扩展了另一个本身扩展对象的类。直接从对象继承意味着您要么在类签名上明确声明
扩展对象
,要么没有定义它应该扩展的另一个类(在这种情况下,它根据定义直接扩展
对象


就特定方法而言,您只继承层次结构中“最后被重写”的方法。因此,如果我从一个继承了
toString()
的类继承,我将只继承重写的版本,而不是从
对象
Class1
间接继承
Class2
,当您多次使用
“is-a”
来描述它们的关系时(请记住
“is-a”
关系是可传递的)


示例:一个
红苹果
is-a
苹果
is-a
水果
is-a
消耗品
。在本例中,
红苹果
间接继承自
水果
消耗品
redapple
直接继承自
apple
(只使用了一个
is-a
transition)

关于类的间接继承的问题已经得到了回答。所以我添加了一些方法


我认为这里重要的是类接口(可用方法的签名,而不是接口的java机制)和类行为(可用方法的实现)之间的区别。在您关于方法的问题中,您可以说类间接继承方法,而不管它们是否被中间类重写,并且在没有任何其他细节的情况下,它意味着继承接口。要将短语的上下文设置为行为,意味着您必须明确声明方法X的实现取自类Y。

谢谢您,我理解您所说的,但我的问题是关于注释“所有类直接或间接继承自类对象”的条件是正确的。@helloRichie它总是正确的,不管在过程中重写了什么方法,任何类仍然从
对象继承,因为它仍然可以被视为
对象。