Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/313.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
Android实例化和覆盖模式 我不认为这种OOP模式存在于C .net和C++中。那么这个模式或特征的名称是什么呢。我在编程Android时遇到了这个问题,这也是Java的一个特性吗?注意:我知道@Override仅适用于android编译器/ide Foo bar = new Foo(){ @Override public void fighters(){ //some stuff } };_Java_Android_Lambda - Fatal编程技术网

Android实例化和覆盖模式 我不认为这种OOP模式存在于C .net和C++中。那么这个模式或特征的名称是什么呢。我在编程Android时遇到了这个问题,这也是Java的一个特性吗?注意:我知道@Override仅适用于android编译器/ide Foo bar = new Foo(){ @Override public void fighters(){ //some stuff } };

Android实例化和覆盖模式 我不认为这种OOP模式存在于C .net和C++中。那么这个模式或特征的名称是什么呢。我在编程Android时遇到了这个问题,这也是Java的一个特性吗?注意:我知道@Override仅适用于android编译器/ide Foo bar = new Foo(){ @Override public void fighters(){ //some stuff } };,java,android,lambda,Java,Android,Lambda,这是兰姆达的事吗 谢谢 这是Java中的示例。这是一个匿名的内部类,其中 匿名类是一个根本没有名称的内部类。以及在其创建时正在创建的实例 有关更多详细信息,请阅读。覆盖是Java注释(不特定于Android)。阅读 考虑下面的例子 让我们来声明一个接口HelloWorld,如下所示 interface HelloWorld { public void greet(); public void greetSomeone(String someone); } 您想编写一个扩展H

这是兰姆达的事吗

谢谢

这是Java中的示例。这是一个匿名的内部类,其中

匿名类是一个根本没有名称的内部类。以及在其创建时正在创建的实例


有关更多详细信息,请阅读。覆盖是Java注释(不特定于Android)。阅读


考虑下面的例子

让我们来声明一个接口
HelloWorld
,如下所示

interface HelloWorld {
    public void greet();
    public void greetSomeone(String someone);
}
您想编写一个扩展
HelloWorld

class TestClass implements HelloWorld {
    String name = "world";

    @Override
    public void greet() {
        greetSomeone("world");
    }

    @Override
    public void greetSomeone(String someone) {
        name = someone;
        System.out.println("Hello " + name);
    }
}
并将其实例化为

TestClass testClass = new TestClass();
在这里,您可以只声明一个匿名内部类,而不是上面的两个步骤(声明一个类并实例化它),如

HelloWorld testClass = new HelloWorld() {

    String name = "world";
    @Override
    public void greet() {
        greetSomeone("world");
    }
    @Override
    public void greetSomeone(String someone) {
        name = someone;
        System.out.println("Hello " + name);
    }
};

这里,
testClass
是一个匿名内部类的对象,它实现了
HelloWorld

您是说“@Override”?我相信这也在C#中。你只是告诉编译器fighters()重写了一个超类的方法。查找“匿名类”或“匿名内部类”,它只是Java中的一个内部类。而@Override不仅仅出现在“Android编译器/ide”中@StephaneMathis:Actually
@Override
主要用于检测代码中的错误,而不是Java语法所必需的。事实上,扩展类中的任何方法如果与超类中的方法具有相同的签名,则无论是否使用
@override
,都将重写该超类方法。