我正在学习多线程考试,我自己开始练习,以提高我的Java能力,但我有一个问题:
我是否可以使用另外一个扩展Thread
的课程来扩展课程?
我知道我只能在Java中扩展一个类(并且我可以实现Runnable
,虽然我现在对此不太满意),但是我可以在如前所说的级联?还是我被迫使用implements
?
我会举起我的例子,让你完全得到我的所作所为:
Character class -> extends Thread
Warrior class -> extends Character
Wizard class -> extends Character
如果我能做到,我可以在哪里使用super()
功能?
答案 0 :(得分:0)
只要您的Character
类未声明final
,就没有问题。 Character
的每个子类继承(间接)private
(以及Thread
)的所有(非Object
)行为和结构以及行为和结构Character
。它们都可以用作Thread
个对象。
调用super()
调用默认(无参数)超类构造函数。它只能用作子类构造函数中的第一行。您可以在子类代码中的任何位置使用super.blah()
语法来调用超类的blah()
函数。
答案 1 :(得分:0)
正如您所提到的,一个类只能从另一个类继承(扩展) 但是扩展类的层次结构确实存在。
例如,你可以有一个
public class Animal{
}
public class Mammal extends Animal{
}
public class Monkey extends Mammal{
}
super()
在每个类的构造函数中使用