Java 通过Android开发扩展类的不同方式?

Java 通过Android开发扩展类的不同方式?,java,android,extends,Java,Android,Extends,因此,我一直在阅读关于Android开发的教程,我遇到了一些我在Java开发过程中从未见过的东西(主要是学校作业): Thread th=new Thread(){ 公开募捐{ 如果(iotdHandler==null){ IoDhandler=新的IoDhandler(); } iotdHandler.processFeed();重置显示( iotdHandler.getTitle(), iotdHandler.getDate(), iotdHandler.getUrl(), iotdHand

因此,我一直在阅读关于Android开发的教程,我遇到了一些我在Java开发过程中从未见过的东西(主要是学校作业):

Thread th=new Thread(){
公开募捐{
如果(iotdHandler==null){
IoDhandler=新的IoDhandler();
}
iotdHandler.processFeed();重置显示(
iotdHandler.getTitle(),
iotdHandler.getDate(),
iotdHandler.getUrl(),
iotdHandler.getDescription());
dialog.dismise();
}
};
th.start();
现在这本书说的是extend thread,我在某种意义上理解了它的作用,但它并没有遵循java中普通类的扩展方式,比如:

public Class Dog extends Animal...
然后您可以继续并重写方法等等。但我的问题是,在引用新的Thread对象时,它实际上在做什么,但同时在它后面创建一个方法,我假设它正在重写Thread类中的某种方法?因为我不知道它叫什么,所以我不能真正地搜索它,所以我为这个显而易见的问题道歉,如果它是一个。任何帮助都将不胜感激

修改您的Java书籍:)它被称为,最初是为了方便Java GUI开发(使用AWT/Swing)而引入的。由于Android用户界面开发遵循许多相同的模式,因此它在Android中经常使用

它所做的是就地实例化一个类(不在单独的文件中定义它,等等),覆盖它的一些方法(在本例中是
run()
)。如果为接口的所有方法提供实现,也可以通过此接口实现接口

修改您的Java书籍:)它被称为,最初是为了方便Java GUI开发(使用AWT/Swing)而引入的。由于Android用户界面开发遵循许多相同的模式,因此它在Android中经常使用


它所做的是就地实例化一个类(不在单独的文件中定义它,等等),覆盖它的一些方法(在本例中是
run()
)。如果为接口的所有方法提供实现,也可以通过此接口实现接口

首先,这并不是Android特有的。您可以在“普通Java”中以同样的方式进行扩展。这样做类扩展的原因是为了减少类,而这种“类扩展”只需要一次。在你的例子中,写出来也是一样的

public class MyThread extends Thread
{
   @Override
   public void run() {
   [...]
   } 
};
后来:

MyThread thread = new MyThread();
thread.start();

这样做的好处是,您不需要实现一个类并在以后实例化它。

首先,这不是特定于Android的。您可以在“普通Java”中以同样的方式进行扩展。这样做类扩展的原因是为了减少类,而这种“类扩展”只需要一次。在你的例子中,写出来也是一样的

public class MyThread extends Thread
{
   @Override
   public void run() {
   [...]
   } 
};
后来:

MyThread thread = new MyThread();
thread.start();

这样做的好处是,您不需要实现一个类并在以后实例化它。

它被称为匿名类:在google中查找
匿名内部类。这就是你在那里看到的。它被称为匿名类:在谷歌中查找
匿名内部类。这就是你在那里看到的。啊,谢谢你!我从未使用过它,所以我不知道如何搜索使用内部类的方法。非常感谢。啊,谢谢!我从未使用过它,所以我不知道如何搜索使用内部类的方法。非常感谢你。