JAVA只可以单继承但是object又是每个类的超类?
不请自来啊!!为什么呢?因为本人感觉Java编程是一件很有意思的事情,并且很愿意研究了解Java以及其他一些语言。那么,针对此问题说一下个人的一些理解,与大家一块分享一下,可能有不合适的地方,也希望看到的同学帮忙指正,以期共同进步。
首先,继承是面向对象编程语言的四大特性之一。继承在Java语言中被广泛使用。继承有点像自然界中的遗传,父辈会将基因特性遗传给子代。对子代来说就是继承。这就是说明继承是符合自然规律的,具有极高的通用性,Java语言具有这样的特点,自然Java语言具有了发展进化的可能性。
在Java中继承使用extends关键字,继承父类后,可以使用父类的变量和方法,起到了很好的代码复用的作用。Java中子类可以定义与父类相同的变量,可以起到隐藏父类变量的作用。子类可以覆写父类的方法,可以覆盖父类的方法作用。这样的话,子类就具有了进化的功能。
Java吸收了C++的一些优点,但摒弃了C++的多继承。摒弃多继承的主要原因是当子类继承的多个父类有相同的变量或方法时,子类不知道调用哪个父类的变量或方法,这就是调用的不确定性。
Java虽然不支持多继承,但支持多层继承。即父亲的父亲的父亲
...
,如下图所示:D类继承自C类,C类继承自B类,B类继承自A类。当然上层相对于下层是更高的抽象。
其中Object类是类层次结构的根类,每个类都使用Objec类作为超类,即可以这样理解。如下图所示,可以认为A继承自Object,这样最下层的D自然继承自Object,这不破坏的Java的单继承。即Java支持多层继承,但不支持多继承。这样应该可以理解为什么感觉一个类(例如D)继承了一个类(类C),又继承了一个类(Object)。
本人具有多年的java开发经验,熟悉多种框架,熟悉网络编程,熟悉java安全编程,熟悉大数据,熟悉多种安全协议,有兴趣的同学可以互相关注,互相学习!!!