JAVA中的类层次结构为树状结构,这后面的自然界描述事物是类似的,例如我们可以将动物划分为哺乳动物,爬行动物,又会对这两类动物继续细分。
哺乳动物和爬行动物都可以看作动物的子类。同样的,鲸和狗可以看做哺乳动物的子类。
在JAVA中,我们给可以用子类和父类来刻画事物。大的更一般的类,可以看个父类,小的更特殊的类,可以看做子类。
子类与父类的关系是子类对象“ is a”(is a kind of)父类对象,也就是说,子类中的一个成员也是父类中的一个成员。例如我们说的狗是哺乳动物,也可以说它是动物。
特点:
单重继承:JAVA只允许从一个类中扩展类,也就是说,任何一个除了Object的类,只有一个父类(这里说的是直接父类)。子类继承所有父类(包括直接父类和间接父类)的方法和成员变量。但遗憾的是,他并不能继承构造方法。需要用到super来调用父类中的构造方法,有兴趣的小伙伴可以去搜索一下,小龙我不太清楚。
与单重继承不同的是,在C++中,多重继承也是“is-a”的关系,它允许一个类继承自多个类,只需要将继承的类使用逗号隔开即可,像下面这样:
class DerivedClass : public BaseClass1, public BaseClass2 {……}
class DerivedClass : public BaseClass1, BaseClass2 {……} // BaseClass2 is a private base
多重继承中每一个被继承的基类都需要设置访问限定符,根据需要可以使用不同的访问限定符,不写默认为private
例如设置一个基类Worker表示工人,然后工人可以是歌手也可以是服务员,我们使用两个类继承自这个基类,Singer和Waiter,最后,我们可以定义一个既是歌手有时服务员的类,所以它同时继承自Singer和Waiter,他们的关系就像下边这样:
class Worker {……}
class Singer : public Worker {……}
class Waiter : public Worker {……}
class SingingWaiter : public Singer, public
在JAVA中,也保留了多重继承的方法,我们可以通过接口来继承多个类。
这篇博客探讨了JAVA中的类层次结构,强调了单重继承的概念,即一个类只能有一个直接父类。JAVA中的子类继承父类的所有方法和成员变量,但不能继承构造方法。虽然JAVA不支持多重继承,但可以通过接口实现类似的功能。博客还对比了C++的多重继承,并举例说明了如何通过继承来描述现实世界中的关系,如工人可以是歌手也可以是服务员。
714

被折叠的 条评论
为什么被折叠?



