我在读一篇关于继承的文章。关于继承的事实很少,但有一点我不明白什么是默认超类及其解释。什么是默认超类?默认超类:除了没有超类的对象类外,每个类都有一个且只有一个直接超类(单一继承)。在没有任何其他显式超类的情况下,每个类都隐式地是对象类的子类。
jum4pzuy1#
除了没有超类的对象类之外,每个类都有并且只有一个直接超类(单继承)。在没有任何其他显式超类的情况下,每个类都隐式地是对象类的子类首先要了解的要点:java中有一个类对象,它已经在jre库中可用。当您定义一个没有extends关键字的类时,您的类将默认扩展java中的对象类。即使在新类中扩展了另一个类,父类或其父类也会传递地继承对象类。简单的理解方法-定义一个有/没有父类的类后,为它创建一个对象。如果您使用的是ide,您可以看到有些方法建议没有在类(或父类)中实现。方法如clone() equals() hashCode() wait() 等等。这些方法/行为从何而来是的,它来自最终的父对象默认继承是隐式的,由java本身处理。希望这能让你更好的理解。
equals()
wait()
oknrviil2#
默认的超类是 Object (更准确地说 java.lang.Object ). 如果类没有显式定义直接超类(通过 extends )那么 Object 隐式地是该类的超类。请看以下示例,该示例以图形方式显示了这一点:
Object
java.lang.Object
extends
public class A {} public class B extends A {} public class C {}
请注意,他的规则不适用于 Object 因为这会产生循环继承。换句话说,, java.lang.Object 是类层次结构的根。
juzqafwq3#
对象类是您创建的每个类的基类。创建类的对象时,将调用对象类的构造函数。
xhv8bpkk4#
java中的对象类是默认的超类。默认情况下,如果对象类没有从任何其他类显式继承,则该对象类将继承到新创建的类中。所以,在java编程中创建的每个类本质上都是对象的子类。
fwzugrvs5#
java中的所有类都可以扩展 Object 类,并且它们是对象类的子类,此约定的唯一例外是 Object 类本身,对象类在默认情况下不扩展任何类,这就是全部思想。
5条答案
按热度按时间jum4pzuy1#
除了没有超类的对象类之外,每个类都有并且只有一个直接超类(单继承)。在没有任何其他显式超类的情况下,每个类都隐式地是对象类的子类
首先要了解的要点:
java中有一个类对象,它已经在jre库中可用。
当您定义一个没有extends关键字的类时,您的类将默认扩展java中的对象类。
即使在新类中扩展了另一个类,父类或其父类也会传递地继承对象类。
简单的理解方法-定义一个有/没有父类的类后,为它创建一个对象。如果您使用的是ide,您可以看到有些方法建议没有在类(或父类)中实现。方法如
clone()
equals()
hashCode()wait()
等等。这些方法/行为从何而来是的,它来自最终的父对象默认继承是隐式的,由java本身处理。希望这能让你更好的理解。
oknrviil2#
默认的超类是
Object
(更准确地说java.lang.Object
). 如果类没有显式定义直接超类(通过extends
)那么Object
隐式地是该类的超类。请看以下示例,该示例以图形方式显示了这一点:
请注意,他的规则不适用于
Object
因为这会产生循环继承。换句话说,,java.lang.Object
是类层次结构的根。juzqafwq3#
对象类是您创建的每个类的基类。创建类的对象时,将调用对象类的构造函数。
xhv8bpkk4#
java中的对象类是默认的超类。默认情况下,如果对象类没有从任何其他类显式继承,则该对象类将继承到新创建的类中。所以,在java编程中创建的每个类本质上都是对象的子类。
fwzugrvs5#
java中的所有类都可以扩展
Object
类,并且它们是对象类的子类,此约定的唯一例外是Object
类本身,对象类在默认情况下不扩展任何类,这就是全部思想。