Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java-扩展一个扩展线程类的类_Java_Multithreading_Extending - Fatal编程技术网

Java-扩展一个扩展线程类的类

Java-扩展一个扩展线程类的类,java,multithreading,extending,Java,Multithreading,Extending,我正在准备一个关于多线程的考试,为了提高我的Java能力,我自己做了一个练习,但我有一个问题: 我是否能够用我创建的另一个类来扩展一个类,该类也扩展了线程 我知道我只能在Java中扩展一个类,并且我可以实现Runnable,虽然我现在对它不是很满意,但是我可以像前面所说的那样在级联中实现它吗?还是我被迫使用工具? 我会举我的例子,让你明白我会做什么: Character class -> extends Thread Warrior class -> extends Characte

我正在准备一个关于多线程的考试,为了提高我的Java能力,我自己做了一个练习,但我有一个问题:

我是否能够用我创建的另一个类来扩展一个类,该类也扩展了线程

我知道我只能在Java中扩展一个类,并且我可以实现Runnable,虽然我现在对它不是很满意,但是我可以像前面所说的那样在级联中实现它吗?还是我被迫使用工具? 我会举我的例子,让你明白我会做什么:

Character class -> extends Thread
Warrior class -> extends Character
Wizard class -> extends Character

如果我可以这样做,我在哪里可以使用超级函数呢?

只要你的角色类没有声明为final,那么这样做就没有问题。角色的每个子类都间接继承线程和对象的所有非私有行为和结构以及角色的行为和结构。它们都可以用作线程对象


调用super调用默认的无参数超类构造函数。它只能用作子类构造函数中的第一行。您可以在子类代码中的任何位置使用super.blah语法来调用超类的blah函数。

正如您所提到的,一个类只能从另一个类继承extend 但扩展类的层次结构确实存在

例如,你可以有一个

public class Animal{
}

public class Mammal extends Animal{
}

public class Monkey extends Mammal{
}

super在每个类的构造函数中使用

来概括,您的问题似乎是:子类化是如何工作的?接口如何工作,线程如何工作?这太宽泛了。我不知道你是如何在没有先通过继承部分的情况下进入类的多线程部分的。你可以扩展一个类,是的。您也可以在询问之前尝试。在没有看到任何实际代码的情况下,我不得不说,对于名称为Character、Warrior和Wizard的类,线程的子类具有相当糟糕的代码味道。您是指Wizard class->extensed Warrior?Ty的帮助:很高兴我能帮助您,请向上投票并将答案标记为已接受,以供未来寻求答案的人使用: