通过 Android 开发扩展类的不同方法



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

Thread th = new Thread() { 
    public void run() {
        if (iotdHandler == null) {
            iotdHandler = new IotdHandler(); 
        }
        iotdHandler.processFeed(); resetDisplay(
        iotdHandler.getTitle(), 
        iotdHandler.getDate(),
        iotdHandler.getUrl(),
        iotdHandler.getDescription());
        dialog.dismiss();
    }
};
th.start();

现在这本书说扩展线程,从某种意义上说,我有点理解它的作用,但它并没有遵循通常的方式在 java 中扩展一个普通类,如下所示:

public Class Dog extends Animal...

然后您可以继续并覆盖方法等。但我的问题是,在引用新的 Thread 对象,但同时在它之后创建一个方法,以及我假设的是覆盖 Thread 类中的某种方法时,它实际上做了什么?由于我不知道它叫什么,所以我无法真正搜索它,所以如果它是一个明显的问题,我深表歉意。任何帮助将不胜感激。

:)修改你的 Java 书籍它被称为匿名内部类,最初是为了促进Java GUI开发(使用AWT/Swing)而引入的。由于Android UI开发遵循许多相同的模式,因此在Android中经常使用。

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

首先,这不是特定于Android的。您可以在"普通Java"中以相同的方式扩展。像这样进行类扩展的原因是为了减少类,当这个"类扩展"只需要一次时。在您的示例中,编写内容相同

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

后来:

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

所以优点是,你不需要实现一个类并在以后实例化它。

相关内容

最新更新