gpt4 book ai didi

Java 以编程方式扩展

转载 作者:行者123 更新时间:2023-12-01 09:59:26 24 4
gpt4 key购买 nike

我想知道是否要以某种方式替换 Java 的“extends”关键字,以便根据参数(文件、环境变量、数据库……基本上是任何东西)动态扩展类。这是否可能,因为使用类加载器或调用构造函数无法实现这一点。我不是在问“我应该使用接口(interface)还是父类(super class)层次结构”,而是在 JAVA 中扩展的真正含义是什么,因为没有任何好的描述,只有古老的继承术语:

https://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html

最佳答案

“替换 extends 关键字”的唯一方法是在运行时动态创建类,这是完全可能的,但并不简单。 Vert.x是广泛使用动态生成的类的项目的一个很好的示例。

从这个意义上来说,Java 并不是被设计为动态语言的。有几种动态语言(其中一些可以在 JVM 上运行),例如 JavaScript。

rather what is extending really mean under the hood...

当你说 Derived extends Base 时,无需深入讨论 OOP 的长篇论文。 ,这意味着Derived继承 Base 的公共(public)和 protected API (然后可以添加到其中)以及该 API 的实现。这意味着代码期望看到 Base实例可以接受 Derived例如,因为 Derived “是一个”Base 。这个链接是编译时创建的。在运行时,实例化 Derived 的实例涉及实例化 Base 的所有管道实例涉及,再加上 Derived 的添加管道.

关于Java 以编程方式扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36932652/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com