如果我有一个子类,其中包含我从父类覆盖的方法,并且在非常特殊的情况下我想使用原始方法,我该如何调用这些方法? 最佳答案 调用superclassA{intfoo(){return2;}}classBextendsA{booleansomeCondition;publicB(booleanb){someCondition=b;}intfoo(){if(someCondition)returnsuper.foo();return3;}} 关于java-如何从子类调用重写的父类方法?,我们在S
以下可以吗?(请记住,我没有编写类的主体,也没有编写接口(interface);-))abstractclassSuperClassimplementsSuperInterfaceclassSubClassextendsSuperClassimplementsSubInterface或者这通常被认为是不好的做法?让我感到奇怪的是,以下内容不起作用:ListmyList;...for(SuperInterfacesi:myList){...} 最佳答案 不好也不坏。SubClass在这里实现了SuperInterface和SubInt
在this线程我发现了一些有趣的时刻,如果类仅用作父类(superclass),则没有规则使其抽象。为什么这样?谢谢 最佳答案 这完全取决于拥有该类的实例是否有意义。假设您有一个类Dog和一个类Cat。它们都扩展了Animal。现在一个Animal可能有一个名字和一些方法,但是让Animal跑来跑去是没有意义的。Animal是……一个抽象的概念。在其他情况下,您可能有子类(例如LinkedHashSetextendsHashSet),但实例化父类(superclass)(HashSet)仍然很有意义在这种情况下)。要回答您的评论,“
让我们从另一个行为开始:即使您将方法/变量声明为私有(private),同一类的另一个实例也可以访问它。没关系,我可以忍受。我称这些为类私有(private)而不是实例私有(private)。现在是问题部分:例如,在运行时我希望能够检查this类中的所有String变量是否不为null,如果它们为null,则应将其更改为字符串“NULL”。我可以使用反射遍历变量并获取它们的值。但是,如果我扩展我的类并添加私有(private)或什至protected变量,我的基类将无法访问它们。我必须先对变量进行setAccessible,然后才能使用它们。所以请向我解释为什么基类(父类(superc
我有这个条件publicclassA{publicaction(){System.out.println("ActiondoneinA");}}publicclassBextendsA{publicaction(){System.out.println("ActiondoneinB");}}当我创建B的实例时,该操作将只执行B中的操作,因为它会覆盖父类(superclass)的操作。问题是在我的项目中,父类(superclass)A已经被使用了太多次,我正在寻找一种方法,在某些条件下,当我创建A的实例时,它会检查它是否为真,用B替换自己。publicclassA{publicA(){i
我不确定我的问题标题是否恰本地描述了我的情况,如果没有,我深表歉意!无论如何,假设我有以下代码片段(可见性如前所述):publicclassChildClassextendsParentClass{//morecodeprivatevoidmyMethod(){MyClassmine=newMyClass(){publicvoidanotherMethod(){//insertcodetoaccessamethodinParentClass}};}}anotherMethod()中的代码是否可以访问ParentClass中的protected方法?如果可以,如何实现?我试过类似...(
Dosubclassesinheritprivatefields?这个问题解决了同样的问题,但我不太明白它如何满足下面(看似)矛盾的情况。http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html表示“子类不继承其父类的私有(private)成员。”这意味着它既不继承私有(private)实例变量也不继承私有(private)方法,对吧?但是,如果它从其父级继承公共(public)访问器方法,这将如何工作?它返回一个它不知道存在的实例变量?此外,我的计算机科学书籍(Baron的APComputerScienceA)
我有一个相当简单的maven化Java项目,但我无法理解它。我的父模块定义了许多Java类(和依赖项),我希望它们对多个子模块有用。其中一个子模块专用于部署Web应用程序,因此它需要一些额外的类(servlet)以及父模块中的所有内容。文件结构是这样的-parent-src-pom.xml-child-src-pom.xml我的父pom如下所示:my.groupparent0.0.1pom...childchild看起来像这样:childwarparentmy.group0.0.1...这就是我需要让child知道父类中定义的类和依赖项的全部内容吗?它似乎不是:eclipse给出编译错
Java中的以下代码,当在elipse上运行时,即使我们替换也会给出相同的输出superclasss=newsub();与,subs=newsub();请注意,我们已经覆盖了方法。输出是:changedsupermethodinsubclassnumissubclass5代码:publicclasssuperclass{intnum=2;publicstaticvoidmain(Stringstr[]){superclasss=newsub();//HERE:nothingchangesifwewrite,subs=newsub();s.supermethod();s.method()
好的,例如,假设我有一个名为“Vehicle”的抽象类。Vehicle类有一个名为wheels的静态变量,它没有被初始化。我想要做的是从Vehicle类扩展其他子类,如“摩托车”和“卡车”,并在这些子类中初始化车轮。代码:publicabstractclassVehicle{staticintwheels;//numberofwheelsonthevehicle}但以下不起作用:publicclassMotorcycleextendsVehicle{wheels=2;}有没有办法有效地做到这一点?编辑:感谢到目前为止所有回复的人。我知道创建实例可能是比将它们全部放在单独的类中更好的方法