Android实例化和覆盖模式 我不认为这种OOP模式存在于C .net和C++中。那么这个模式或特征的名称是什么呢。我在编程Android时遇到了这个问题,这也是Java的一个特性吗?注意:我知道@Override仅适用于android编译器/ide Foo bar = new Foo(){ @Override public void fighters(){ //some stuff } };
这是兰姆达的事吗 谢谢 这是Java中的示例。这是一个匿名的内部类,其中 匿名类是一个根本没有名称的内部类。以及在其创建时正在创建的实例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注释(不特定于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
,都将重写该超类方法。