Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/333.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
Java Groovy基础知识-运行时行为和封装_Java_Groovy - Fatal编程技术网

Java Groovy基础知识-运行时行为和封装

Java Groovy基础知识-运行时行为和封装,java,groovy,Java,Groovy,我一直在读Dierk Koenig的“Groovy in Action”。 Dierk声称这些是Java无法执行的Groovy任务: - Changing the runtime behavior of objects after they have been created. 我认为Java也有这个功能——动态调度。有人能解释一下它与Java有什么不同吗 - Encapsulating logic in objects in a natural way. 这与Java有什么不同? 如果您

我一直在读Dierk Koenig的“Groovy in Action”。 Dierk声称这些是Java无法执行的Groovy任务:

- Changing the runtime behavior of objects after they have been created.
我认为Java也有这个功能——动态调度。有人能解释一下它与Java有什么不同吗

- Encapsulating logic in objects in a natural way. 
这与Java有什么不同? 如果您有明确的答案,非常感谢您抽出时间来回答。

对于第一项任务:

创建对象后更改对象的运行时行为

我认为您将Groovy语言的这一特性与Java中的多态性等概念混淆了。例如,Groovy中的这个特性允许您调用,而动态分派是JVM的一个核心特性,它允许运行时根据对象的实际类型分派正确的方法调用

对于第二项任务:

以自然的方式将逻辑封装到对象中


我认为这是关于允许您存储对可重用代码块或方法的引用。Java中不存在此功能。

您可以创建对象,然后在运行时将新方法绑定到该对象@参见Groovy元类非常感谢,这很有意义。我在考虑Java中的多态性。非常感谢。