问题内容: 我有两个平行的继承链: 我的经验是,并行继承层次结构在增长时会成为维护上的麻烦。 即不添加方法到我的主要类。 如何避免并行继承层次结构而又不破坏关注点分离的概念? 问题答案: 我正在考虑使用“访客”模式。 这样,您就可以避免多余的继承树,并使格式化逻辑与Vehicle类分开。当然,当您创建新的载具时,您必须向Formatter接口添加另一种方法(并在Formatter接口的所有实现中实
问题内容: 所有自定义类/对象的超类是否隐式继承?我以为Java不支持多重继承。我问的原因是,如果我已经从我的自定义类中的另一个类继承了,并且Java再次在它之上强制隐式继承,这不是多重继承吗? 另外,java.lang.class类还是所有自定义类/对象的超类吗?如果没有,如何在Java反射中获取传递的任何类的类类型,或如何在任何对象上调用isInstance? 问题答案: 一切都是对象,说您可
问题内容: 我一直在看该类的源代码。对我来说,这似乎是一个普通的抽象类,带有受保护的构造函数。它不是最终的,它内部没有任何特殊的注释,并且不使用本机代码。但是,它不能直接子类化。实际上,以下代码无法编译: 我知道这是Java中的一个特殊类,并且我知道有充分的理由应禁止直接子类化。但是从技术上讲,您如何执行此行为?程序员是否可以创建类似的非最终类,尽管具有可访问的构造函数,该类仍不允许直接子类化?
问题内容: 我有两个班和。我有一个私有变量,可以通过setter和getter方法访问。我就是继承类用。 现在我可以更改using 的值。我想限制该选项。我希望它使其成为只读值。请协助我。 问题答案: 一种选择是从类中 删除 方法: 编辑: 为什么要这样做? 如果从继承,它应该能够执行与相同的动作。否则,继承的目的是什么?如果您仍然认为应该能够修改值而不能修改值,那么您的设计可能是错误的。您可以尝
问题内容: 我想将一个Web服务URL请求表示为一个对象,并发现在继承层次结构中可能有很多通用参数。一个请求可以有很多参数,一些是必选参数,而其他是可选参数,我相信Bloch的Builder模式是一个不错的选择,它可以使用流畅的接口模拟命名参数。 具体来说,我正在设计Google Maps网络服务API,该API具有常规的网络服务请求 和是必填参数,也是必填参数。还有一个可选参数。 每个服务都有其
问题内容: 您对此设计决定有何看法?它有什么优点和缺点? 链接: 嵌入说明 问题答案: 在注释中,您想知道嵌入的想法是否足以“完全替换继承”。我会说这个问题的答案是“是”。几年前,我使用名为Snit的Tcl OO系统进行了非常简短的介绍,该系统使用组合和委派来排除继承。Snit与Go的方法仍然有很大不同,但是在这一方面,它们具有一些共同的哲学基础。这是一种将功能和职责结合在一起的机制,而不是类的层
本文向大家介绍JS原型与继承操作示例,包括了JS原型与继承操作示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS原型与继承操作。分享给大家供大家参考,具体如下: 这里使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试运行结果如下: 更多关于JavaScript相关内容还可查看本站专题:《javasc
问题内容: 这是我遇到的一个测试练习问题,希望您能帮助我理解概念 让Hawk成为Bird的子类。假设某个类有两个重载的方法void foo(Hawk h)和void foo(Bird b)。在声明Bird x = new Hawk()之后,将在调用foo(x)中执行哪个版本; 这是我到目前为止的代码,有人可以向我解释为什么foo(bird b)被执行吗? 问题答案: Java执行重载解析以选择方法
问题内容: 有什么理由禁止Java中的继承,例如通过使用最终类或使用单个私有无参数构造函数的类?将方法定型的充分理由是什么? 问题答案: 这里最好的参考是Joshua Bloch的出色著作“ Effective Java”的第19项,称为“继承的设计和文档,否则将禁止继承”。(在第二版中是第17项,在第一版中是第15项。)你应该阅读它,但我将进行总结。 如果祖先不是为了继承而来的,则继承的类与父母
问题内容: 我一直在努力解决ECMAScript 5中引入的新方法。 通常,当我想使用继承时,我会执行以下操作: 我只是将一个新创建的Animal对象分配给Dog的原型,一切都像一个吊饰一样工作: 但是人们(没有解释)说这不是继承的工作方式,我应该使用Object.create方法: 这也有效。 使用有什么好处,或者我错过了什么? 更新:有人说也可以。所以现在我很困惑 问题答案: 在下面的内容中,
问题内容: 您将如何在以下示例代码中配置注释?我只想保留JPA注释,避免使用Hibernate特定的依赖项。 下面的代码正确吗? (这些类将具有多个版本,RefSomeOtherExample等,并且每个类一个db表。有些可能会添加其他字段(列),但大多数只会使用继承自“ RefData”基类的基本字段。) 基类: 最终,我想使用Hibernate的SchemaExport类从中生成模式创建脚本。
问题内容: 我有3个非抽象的可持久类。MyClubUser和HisClubUser类从User类继承。对于每个类,我为每个子类策略使用一张表。 我观察到的是,当我对User类进行查询时,生成的SQL使用左外部联接HisClubUser和MyClubUser。为什么Hibernate在我仅关注User的情况下[加入其他表]?我的观点是,即使检索到数据,鉴于返回了用户实例,我也无法访问MyClubUs
本文向大家介绍Python多继承顺序实例分析,包括了Python多继承顺序实例分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python多继承顺序。分享给大家供大家参考,具体如下: 示例1: 运行结果: A caller B called 示例2: 运行结果: A caller A called 更多关于Python相关内容感兴趣的读者可查看本站专题:《Python面向对象程序设计
本文向大家介绍js实现继承的5种方式,包括了js实现继承的5种方式的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了js实现继承的5种方式。分享给大家供大家参考,具体如下: 1、继承第一种方式:对象冒充 2、继承第二种方式:call()方法方式 call方法是Function类中的方法 call方法的第一个参数的值赋值给类(即方法)中出现的this call方法的第二个参数开始依次赋值给类(
本文向大家介绍浅谈Javascript中的对象和继承,包括了浅谈Javascript中的对象和继承的使用技巧和注意事项,需要的朋友参考一下 Javascript是一门函数式编程语言,Javascript当中函数是核心,在Javascript中函数也是对象,函数对象在创建的时候会被添加属性和方法。 在Javascript中函数对象有两种调用方式,一种是new关键字的调用,另一种是没有new关键字的调