Java - 扩展一个 class,扩展一个线程 class
Java - Extend a class that extend a Thread class
我正在准备多线程的考试,为了提高自己的能力,我开始了自己的练习Java,但是我有一个问题:
我可以用我制作的另一个 class 来扩展 class 吗?
我知道我只能在 Java 中扩展 1 class(而且我可以实现 Runnable
,尽管我现在对此不太满意),但是我可以像以前说的那样级联吗?还是我被迫使用 implements
?
我会举出我的例子让你明白我会做什么:
Character class -> extends Thread
Warrior class -> extends Character
Wizard class -> extends Character
如果可以,我可以在哪里使用 super()
功能?
只要您的 Character
class 未声明 [=11=],这样做就没有问题。 Character
的每个子 class 都(间接)继承了 Thread
(以及 Object
)的所有(非 private
)行为和结构,以及Character
的行为和结构。它们都可以用作Thread
对象。
调用 super()
调用默认(无参数)superclass 构造函数。它只能用作 sub-class 构造函数中的第一行。您可以在 subclass 代码中的任何位置使用 super.blah()
语法来调用 superclass 的 blah()
函数。
如你所说,一个 class 只能继承(扩展)另一个 class
但是扩展 classes 的层次结构确实存在。
例如,您可以
public class Animal{
}
public class Mammal extends Animal{
}
public class Monkey extends Mammal{
}
super()
在每个 class
的构造函数中使用
我正在准备多线程的考试,为了提高自己的能力,我开始了自己的练习Java,但是我有一个问题:
我可以用我制作的另一个 class 来扩展 class 吗?
我知道我只能在 Java 中扩展 1 class(而且我可以实现 Runnable
,尽管我现在对此不太满意),但是我可以像以前说的那样级联吗?还是我被迫使用 implements
?
我会举出我的例子让你明白我会做什么:
Character class -> extends Thread
Warrior class -> extends Character
Wizard class -> extends Character
如果可以,我可以在哪里使用 super()
功能?
只要您的 Character
class 未声明 [=11=],这样做就没有问题。 Character
的每个子 class 都(间接)继承了 Thread
(以及 Object
)的所有(非 private
)行为和结构,以及Character
的行为和结构。它们都可以用作Thread
对象。
调用 super()
调用默认(无参数)superclass 构造函数。它只能用作 sub-class 构造函数中的第一行。您可以在 subclass 代码中的任何位置使用 super.blah()
语法来调用 superclass 的 blah()
函数。
如你所说,一个 class 只能继承(扩展)另一个 class 但是扩展 classes 的层次结构确实存在。
例如,您可以
public class Animal{
}
public class Mammal extends Animal{
}
public class Monkey extends Mammal{
}
super()
在每个 class