草庐IT

继承权

全部标签

Java继承与初始化

我正在阅读J.Bloch的EffectiveJava,现在我正在阅读继承与组合部分。据我所知,他说继承并不总是好的。Arelatedcauseoffragilityinsubclassesisthattheirsuperclasscanacquirenewmethodsinsubsequentreleases.Supposeaprogramdependsforitssecurityonthefactthatallelementsinsertedintosomecollectionsatisfysomepredicate.Thiscanbeguaranteedbysubclassingt

Java - 如何检查一个类是否继承自某个类或接口(interface)?

我需要检查:publicstaticbooleancheck(Classc,Classd){if(/*cinheritsfromd*/)returntrue;elsereturnfalse;}我该怎么做?没有c.newInstance()有可能吗?第一次看错标题了。现在是正确的。 最佳答案 使用isAssignableFromif(d.isAssignableFrom(c)){//thendisasuperclassofc//inotherwords,cinheritsd}Determinesiftheclassorinterfac

java - 如何将继承对象列表转换为 Java 中的对象集合?

我有一个集合类型:CollectioncollecA我的对象中有一个列表:ListlistBB扩展AclassBextendsA{...}但我不能执行以下操作:collecA=listB我不明白为什么Collection是由List实现的。 最佳答案 让我们暂时假设您可以按照您的描述进行操作:classBextendsA{...}CollectioncollecA;ListlistB;collecA=listB;//normallyanerror,butletspretenditsallowedcollecA.add(newA())

java - 继承方法的切入点(在与类设计无关的上下文中)

我在摆弄AspectJ并想出了一个我似乎无法正确实现的想法(我的生活故事)。我已经定义了一个方面:packagemy.package;importorg.aspectj.lang.annotation.*;importorg.aspectj.lang.ProceedingJoinPoint;@AspectpublicclassMyAspect{@Pointcut("execution(**(..))&&this(o)")publicvoidinstanceMethod(Objecto){}@Pointcut("within(@Marker*)")publicvoidmethodsFro

java - 继承困惑 - 在构造函数中打印时值为 "this"

我有以下代码。classTest{inti=0;Test(){System.out.println(this);System.out.println(this.i);}}publicclassDemoextendsTest{inti=10;Demo(){super();System.out.println("callingsuper");System.out.println(this);System.out.println(this.i);}publicstaticvoidmain(String[]args)throwsIOException{Demod=newDemo();}}O/P

java - 继承和 "this"关键字

假设我们有下一种情况:父类A:classA{publicA(){}publicdoSomething(){System.out.println(this.getClass());}}有一个子类B:classBextendsA{publicB(){}publicvoiddoSomething(){super.doSomething();System.out.println(this.getClass());}}和主类:classMain{publicstaticvoidmain(String[]args){Aab=newB();ab.doSomething();}}当我执行这段代码时结果

java - java中的继承和委托(delegate)有什么区别

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Prefercompositionoverinheritance?java中继承和委托(delegate)有什么区别?如何在我的项目中使用下面的例子?请你带我去代表团。我知道继承,但对委托(delegate)了解不多。所以,请给一个适当的理由。我为什么要使用它?packagecom.m;classRealPrinter{//the"delegate"voidprint(){System.out.println("something");}}classPrinter{//the"delegator"RealPr

c# - 如何防止类 'a' 被另一个类继承?

我有一个名为fdetails的类,我不希望任何其他类继承该类。我可以将它设置为不被其他类继承吗?我想用以下3种语言完成这项工作:JavaVB.NET3.5C#3.5 最佳答案 java:finalvb:NotInheritable(NonOverrideableforproperties)c#:sealed 关于c#-如何防止类'a'被另一个类继承?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/q

java - 从抽象类继承静态变量

我有六个类,它们都扩展了同一个抽象类。抽象类有一个指向一些JNI代码的静态变量,我只想在类的每个实例化时加载一次。据我了解,这会导致实例化此静态变量的一个实例,但我想要的是每个扩展类都有自己的变量静态实例,该实例对于给定的子类是唯一的。我想在我的抽象类中编写一些代码来修改和/或释放抽象类。是否可以同时做这两件事?作为示例,我可以编写一个带有变量foo的抽象类bar和一个打印foo内容的printFoo方法。然后我按顺序实例化fooBar1、fooBar2和fooBar3,它们各自扩展bar类并在静态block中将foo初始化为不同的值。如果我调用foobar1.printFoo,我想打

java - Hibernate的table-per-subclass继承策略的效率

我正在考虑Hibernate管理的类层次结构的表布局,当然,我认为每个子类表技术在一般意义上是最合适的。然而,通过逻辑思考我对它的性能有一些担忧,尤其是随着子类数量的增加。举一个非常简短(和经典)的例子,假设您有以下类:publicabstractclassAnimal{intpkey;Stringname;}publicclassDogextendsAnimal{longnumSlippersChewed;//intisnotlargeenough...}publicclassCatextendsAnimal{shortmiceCaught;//...buthereintisfarb