Java多线程和继承

Java多线程和继承,java,inheritance,Java,Inheritance,在这些情况下,B是一个可运行的 写下以下内容是否有效: class A implements Runnable class B extends A 如果有效,在B中运行方法是否会覆盖A的方法? 可能出现的情况是什么? 我很困惑…好吧,通过扩展A,您已经实现了Runnable,所以您只需重写run()方法,就可以在Mordor中运行 如果您不这样做,超类run()将生效。好吧,通过扩展,您已经实现了Runnable,因此您只需重写run()方法,所有这些都将在Mordor中正常运行 如果不这

在这些情况下,
B
是一个
可运行的

写下以下内容是否有效:

class A implements Runnable  
class B extends A
如果有效,在
B
中运行
方法是否会覆盖
A
的方法? 可能出现的情况是什么?

我很困惑…

好吧,通过扩展A,您已经实现了
Runnable
,所以您只需重写
run()
方法,就可以在Mordor中运行


如果您不这样做,超类
run()
将生效。

好吧,通过扩展,您已经实现了
Runnable
,因此您只需重写
run()
方法,所有这些都将在Mordor中正常运行


如果不这样做,超类
run()
将生效。

它是有效的,因为接口只定义方法存在。B.run将重写A的Runnable,这与B未直接实现Runnable或A未实现Runnable但具有公共void run()方法的情况相同。

这是有效的,因为接口仅定义方法存在。B.run将重写A的Runnable,这与B没有直接实现Runnable或A没有实现Runnable但有一个公共的void run()方法一样。

因为“
实现Runnable
”没有向类中引入任何可执行代码,但基本上只是承诺实现必要的方法,重复“
implements Runnable
”在一个已经扩展了另一个实现了
Runnable
的类上,实际上什么都不做

在使用反射时,可以看到非常细微的差别,但除此之外没有差别。

因为“
实现可运行的”
”并没有将任何可执行代码引入类,而基本上只是承诺实现必要的方法,重复“
实现可运行的”
“对于已经扩展了另一个实现了
Runnable
的类,实际上什么都不做

在使用反射时,可以看到非常细微的差别,但除此之外,没有差别。

这就足够写了

class B extends A implements Runnable
类A已经实现了runnable,因此扩展它也会使它可以运行。要执行特定于类B的操作,请重写类B中的run()。

只需编写

class B extends A implements Runnable
class B extends A 
类A已经实现了runnable,因此扩展它也会使它可以运行。要执行特定于类B的操作,请重写类B中的run()

class B extends A 
是有效的Java语法,但实际上什么都不做。通过扩展A,B是可运行的

当对对象调用run方法时,将调用对象的run方法。对B对象调用run时,将调用a的run方法,除非B重写a的run方法

考虑以下几点:

class B extends A implements Runnable
是有效的Java语法,但实际上什么都不做。通过扩展A,B是可运行的

当对对象调用run方法时,将调用对象的run方法。对B对象调用run时,将调用a的run方法,除非B重写a的run方法

考虑以下几点:

class B extends A implements Runnable

这个问题与多线程无关<代码>可运行
实例不必在单独的线程中运行。这个问题与多线程无关<代码>可运行实例不必在单独的线程中运行。如果我执行以下操作:线程t1=新线程(new A());螺纹t2=新螺纹(新B());t1.start();t2.start()@凯文:完全一样。多线程与此无关。相同。t1中的线程将打印“A的运行方法”,t2中的线程将打印“B的运行方法”。@Bombe@Jesper但是B中的运行不会覆盖A中的运行,那么两个运行都应该打印“B的运行方法”Kevin-当您执行“新建A()”时,您已经创建了A的实例,而不是B。如果我执行以下操作:线程t1=新建线程(新建A());螺纹t2=新螺纹(新B());t1.start();t2.start()@凯文:完全一样。多线程与此无关。相同。t1中的线程将打印“A的运行方法”,t2中的线程将打印“B的运行方法”。@Bombe@Jesper但是B中的运行不会覆盖A中的运行,那么两个运行都应该打印“B的运行方法”Kevin-当您执行“new A()”时,您已经创建了A的实例,而不是B。