草庐IT

Java:父类(super class)在某些条件下构造子类,可能吗?

我有这个条件publicclassA{publicaction(){System.out.println("ActiondoneinA");}}publicclassBextendsA{publicaction(){System.out.println("ActiondoneinB");}}当我创建B的实例时,该操作将只执行B中的操作,因为它会覆盖父类(superclass)的操作。问题是在我的项目中,父类(superclass)A已经被使用了太多次,我正在寻找一种方法,在某些条件下,当我创建A的实例时,它会检查它是否为真,用B替换自己。publicclassA{publicA(){i

java - 调用 java 子类保护方法时方法访问被拒绝

我有以下问题:我有一个类,试图使用反射来调用其OWN保护方法之一,但出现异常:java.lang.IllegalAccessException:访问方法被拒绝有人可以阐明这一点吗?基类:publicabstractclassBaseReceiverextendsBroadcastReceiver{@OverridepublicvoidonReceive(Contextcontext,Intentintent){//invokethecorrecteventmethod:Methodmethod;try{method=this.getClass().getDeclaredMethod("

java - 子类是否继承父类(super class)的私有(private)实例变量

Dosubclassesinheritprivatefields?这个问题解决了同样的问题,但我不太明白它如何满足下面(看似)矛盾的情况。http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html表示“子类不继承其父类的私有(private)成员。”这意味着它既不继承私有(private)实例变量也不继承私有(private)方法,对吧?但是,如果它从其父级继承公共(public)访问器方法,这将如何工作?它返回一个它不知道存在的实例变量?此外,我的计算机科学书籍(Baron的APComputerScienceA)

Java:覆盖子类中的抽象方法

我真的应该知道这一点,但出于某种原因我不明白以下内容。我的抽象类包含以下抽象方法:protectedabstractRuleDTOcreateRowToBeCloned(RuleDTOruleDTO);我还有另外一个类如下:EvaluationRuleDTOextendsfromRuleDTO然后在我的抽象类的子类中,我有以下实现,由于“必须覆盖或实现父类(superclass)型方法”而不允许:protectedEvaluationRuleDTOcreateRowToBeCloned(EvaluationRuleDTOruleDTO){但是,以下是允许的:protectedEvalu

java - Java编程实践: stacking enums and enum constructors,和子类化哪个更好?

给定有限数量的不同种类的项目,用堆叠枚举和枚举构造函数表示它们更好,还是将它们子类化更好?还是有更好的方法?为了给您一些背景信息,在我的小型RPG程序(具有讽刺意味的是它应该很简单)中,一个角色的元素栏中有不同种类的元素。项目根据其类型、用途和效果而有所不同。例如,元素栏中的一项是名为Gremlin的法术卷轴,可调整Utility属性。另一个项目可能是一把名为Mort的剑,用于战斗并造成伤害。在我的RPG代码中,我现在尝试了两种表示库存项目的方法。一种方法是子类化(例如,InventoryItem->Spell->AdjustingAttributes;InventoryItem->W

java - isAssignableFrom 不为子类返回 true

所以我想检查一个类是否可以分配给包含许多子类的父类(superclass),像这样publicclassA{publicA(){}}publicclassBextendsA{publicB(){}}publicclassCextendsB{publicC(){}}publicstaticvoidmain(){Aa=newC();booleanwhyAmIFalse=a.getClass().isAssignableFrom(B.class);}为什么返回false?显然它可以分配给B类作为Bb=(B)a没有返回错误,为什么返回false。这不是它描述自己的功能吗?是否有一个功能可以完成

java - 父类(super class)对子类对象的引用显示与子类对子类对象的引用相同的行为

Java中的以下代码,当在elipse上运行时,即使我们替换也会给出相同的输出superclasss=newsub();与,subs=newsub();请注意,我们已经覆盖了方法。输出是:changedsupermethodinsubclassnumissubclass5代码:publicclasssuperclass{intnum=2;publicstaticvoidmain(Stringstr[]){superclasss=newsub();//HERE:nothingchangesifwewrite,subs=newsub();s.supermethod();s.method()

java - String 数组是 Object 数组的子类吗?

我想我在这里遗漏了一些基本的东西。对先前提出的问题的任何解释或指示都将非常有帮助。importjava.util.Arrays;importjava.util.List;publicclassSt{publicstaticvoidbla(Object[]gaga){gaga[0]=newDate();//throwsArrayStoreExceptionSystem.out.println(gaga[0]);}publicstaticvoidbla(Listgaga){System.out.println(gaga.get(0));}publicstaticvoidmain(Strin

java - Collection 是 Java 中 Object 的子类型吗?

是CollectionObject的子类型在java?这可能是一个愚蠢的问题,但不是Object每个类的根? 最佳答案 没有。Collection是一个接口(interface),接口(interface)不能从类继承——因此它们不能从Object继承。(没有实现的接口(interface)从可以有实现的类继承是没有意义的。)但是,任何实现Collection的类显然都必须继承自Object。因此,您可以将实现Collection的对象视为继承自Object,因为最终它们将不得不这样做。这是语义上的差异,但是OO理论中的一个重要区别

Java——在子类中初始化父类(super class)变量?

好的,例如,假设我有一个名为“Vehicle”的抽象类。Vehicle类有一个名为wheels的静态变量,它没有被初始化。我想要做的是从Vehicle类扩展其他子类,如“摩托车”和“卡车”,并在这些子类中初始化车轮。代码:publicabstractclassVehicle{staticintwheels;//numberofwheelsonthevehicle}但以下不起作用:publicclassMotorcycleextendsVehicle{wheels=2;}有没有办法有效地做到这一点?编辑:感谢到目前为止所有回复的人。我知道创建实例可能是比将它们全部放在单独的类中更好的方法