对于Cube类,我试图消除错误:Cube.java:12:error:constructorRectangleinclassRectanglecannotbeappliedtogiventypes;super(x,y);^required:int,int,double,doublefound:int,int.......我知道Cube的每个面都是一个Rectangle,其长度和宽度需要与Cube的边相同,但我不确定需要将什么传递给Rectangle构造函数以使其长度和宽度为与立方体的侧面相同。还尝试计算体积,即矩形面积乘以立方体边长这是立方体类//-------------------
让我们从另一个行为开始:即使您将方法/变量声明为私有(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
我有一个必须用参数构造的基类。在子类中,我需要在构造基类之前准备好这个参数,但在Java中,必须先调用super。处理这种情况的最佳方法是什么(参见下面的简单示例)。classBaseClass{protectedStringpreparedParam;publicBaseClass(StringpreparedParam){this.param=param;}}classChildClass{publicChildClass(Mapparams){//needtoworkwithparamsandprepareparamforsuperconstructorsuper(param);
有两个类Super1和Sub1Super1.classpublicclassSuper1{Super1(){this.printThree();}publicvoidprintThree(){System.out.println("PrintThree");}}Sub1.classpublicclassSub1extendsSuper1{Sub1(){super.printThree();}intthree=(int)Math.PI;publicvoidprintThree(){System.out.println(three);}publicstaticvoidmain(String
Dosubclassesinheritprivatefields?这个问题解决了同样的问题,但我不太明白它如何满足下面(看似)矛盾的情况。http://docs.oracle.com/javase/tutorial/java/IandI/subclasses.html表示“子类不继承其父类的私有(private)成员。”这意味着它既不继承私有(private)实例变量也不继承私有(private)方法,对吧?但是,如果它从其父级继承公共(public)访问器方法,这将如何工作?它返回一个它不知道存在的实例变量?此外,我的计算机科学书籍(Baron的APComputerScienceA)
我有一个方法setData(ArrayListlist),所以任何想要设置数据的人都可以拥有自己的实体,只需要从父类(superclass)扩展。但是当他们调用setData,他们如何将ArrayList转换为ArrayList?现在我使用setData(newArrayList(list)),但这不是一个好的解决方案。任何人都可以告诉我如何转换或其他解决方案可以避免该问题。非常感谢! 最佳答案 这取决于您之后要对列表执行的操作。如果你只是想从中读取,你可以像这样声明你的方法:setData(ArrayListlist)不过,您不能
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;}有没有办法有效地做到这一点?编辑:感谢到目前为止所有回复的人。我知道创建实例可能是比将它们全部放在单独的类中更好的方法
如果我有一个类,例如:classPerson{privateStringname;...constructor,getters,setters,equals,hashcode,tostring...}我是否可以子类化并将注解应用于子类中的名称字段,例如应用持久性注解,而无需重新实现类的其余部分?@EntityclassEmployeeextendsPerson{@Column(...)privateStringname;} 最佳答案 这行不通,因为父类(superclass)中的字段不会受到影响,但你可以试试这个@Entitycla