草庐IT

继承权

全部标签

java - 用于类继承的 Spring Data MongoDb

我想将不同的数据存储到MongoDb中的一个集合中,并让Spring数据bean具有适当的字段..抱歉,我跳过了细节。父bean:classAintachildren:classBextendsAdoublebclassCextendsAStringc所以,在mongo中有如下文档{a:1,b:2.3,c:"Test"}当我获取数据时,没问题。但是,当我从CrudRepository为B调用save方法时,它重写了所有数据,我丢失了C。我只知道一个不错的选择来创建带有增量更新的自定义保存方法,例如update.set("b",newvalue)...但有反射(reflection)。你

java - 具有多个继承类的通用返回类型的自引用方法

这可能有点难以描述。不过,我会试试的;)遵循流畅的风格,类的方法返回类实例本身(this)是很常见的。publicclassA{publicAdoSomething(){//dosomethingherereturnthis;}}当扩展这样一个流畅的样式类时,可以在第一个继承步骤中通过泛型类型轻松完成此操作,并将返回类型转换为父类(superclass)中的此泛型类型。publicclassA>{publicTdoSomething(){//dosomethingherereturn(T)this;}}publicclassBextendsA{//anextendedclassofcl

继承(使用及深入、super、重写/复写)--学习JavaEE的day14

day14一、继承概念Java中的继承是一个对象获取父对象的所有属性和行为的机制理解:继承是指一个类(子类)可以继承另一个类(父类)的属性和方法关键字extends优点:减少代码的冗余缺点:继承会增加类与类之间的关系,会增加代码的维护难度继承的使用使用场景:多个类似的类,有相同的属性和方法,就可以把相同属性和方法抽取到父类需求:编写中国人和日本人的类,创建各自的对象分析:人类:属性:姓名、性别、年龄方法:吃饭饭、睡觉觉中国人的类继承人类:属性:身份证方法:打太极日本人的类继承人类:属性:年号方法:拍电影ps:(省略部分代码)publicclassPerson{Stringname;charse

Java:你怎么称呼这种多重继承歧义?

这是一个在Java中使用多接口(interface)继承的示例,但存在一个问题。请注意,我完全知道为什么会出现问题,这不是我要问的重点。问题在于如何命名这种特定的多接口(interface)继承歧义(如果有名称的话)。例如,在C++中,当你使用多重实现继承而无法确定使用哪个重写方法时产生的歧义被称为“菱形继承(钻石问题)”:http://en.wikipedia.org/wiki/Diamond_problem现在再一次,我知道这不是同一个问题:这不是重点。关键是在之前的案例中已经创造了一个名称。我想知道是否存在我将要描述的问题的名称。这是另一种多重继承的示例,其中一个接口(inter

Java泛型和继承

我有以下抽象类:publicabstractclassAbSuperClass1{//classdefinition}和:publicabstractclassAbSuperClass2{publicabstract>voidmethod(Qarg);...}然后我有两个具体的实现publicclassConcrete1extendsAbSuperClass{//classdefinition}和:publicclassConcrete2extendsAbSuperClass2{publicvoidmethod(Concrete1arg){//methoddefinition}}然而,

java - 继承、组合和默认方法

通常承认通过继承扩展接口(interface)的实现不是最佳实践,并且组合(例如,从头开始重新实现接口(interface))更易于维护。这是可行的,因为接口(interface)契约强制用户实现所有需要的功能。但是在Java8中,默认方法提供了一些可以“手动”覆盖的默认行为。考虑以下示例:我想设计一个用户数据库,它必须具有列表的功能。为了提高效率,我选择用ArrayList来支持它。publicclassUserDatabaseextendsArrayList{}这通常不会被认为是很好的实践,如果真的想要List的全部功能并遵循通常的“组合优于继承”的座右铭,人们会更喜欢:publi

java - 继承带有边界扩展的通用内部类的编译错误

我在编译带有内部类的泛型类时遇到问题。该类扩展了泛型类,内部类也是。这里实现了接口(interface):publicinterfaceIndexIteratorextendsIterator{...}通用父类(superclass):publicabstractclassCompoundCollection>implementsCollection{...protectedclassCompoundIterator>implementsIterator{...}}带有编译器错误的泛型子类:publicclassCompoundListextendsCompoundCollection

java - 具有继承和混合的 Scala 可测试代码

我用Java开发了很多代码,并涉足Groovy和Haskell,现在这让我转向了Scala。我对Scala的功能方面感觉相对舒服,但我发现自己在Scala中的面向对象设计方面有点不稳定,因为它感觉与Java有点不同,特别是由于特征/混合。我的目标是编写尽可能可测试的代码,这在我的Java开发中一直转化为重点尽可能保持不变更喜欢通过构造函数注入(inject)状态总是寻求组合而不是继承(受thispostonSO的严重影响,并且可能对其react过度)现在我正试图在这个新的Scala领域站稳脚跟,但我很难弄清楚我应该在这里采用什么方法,特别是我是否应该开始对某些东西使用继承目的。Prog

java - "Constructor cannot be applied to given types"当构造函数有继承时

这是我的基类:abstractpublicclassCPUextendsGameObject{protectedfloatshiftX;protectedfloatshiftY;publicCPU(floatx,floaty){super(x,y);}这是它的一个子类:publicclassBeamextendsCPU{publicBeam(floatx,floaty,floatshiftX,floatshiftY,intbeamMode){try{image=ImageIO.read(newFile("/home/tab/Pictures/Beam"+beamMode+".gif")

java - log4j rootLogger 似乎继承了其他记录器的日志级别。为什么?

我有一个log4J设置,其中根记录器应该将ERROR级别及更高级别的消息记录到控制台,另一个记录器将所有内容记录到系统日志。log4j.properties是:#Rootloggeroptionlog4j.rootLogger=ERROR,Rlog4j.appender.R=org.apache.log4j.ConsoleAppenderlog4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=%d%p%t%c-%m%nlog4j.logger.SGSe