jjzjj

superClass

全部标签

java - 向上转型时,Java 如何处理字段?

这个问题在这里已经有了答案:关闭9年前。PossibleDuplicate:Theconceptofshadowing我对Java在向上转型期间如何处理类的字段感到困惑。例如:classSuperClass{StringmyString="StringinSuperClass";publicvoidmyMethod(){System.out.println("MethodinSuperClass");}}classSubClassextendsSuperClass{StringmyString="StringinSubClass";publicvoidmyMethod(){System

java - 为什么 java 多态性在我的示例中不起作用

我有这4个java类:1publicclassRect{doublewidth;doubleheight;Stringcolor;publicRect(){width=0;height=0;color="transparent";}publicRect(doublew,doubleh){width=w;height=h;color="transparent";}doublearea(){returnwidth*height;}}2publicclassPRectextendsRect{doubledepth;publicPRect(doublew,doubleh,doubled){wi

java - 包含同一父类(super class)的不同对象的 ArrayList - 如何访问子类的方法

您好,我想知道是否有解决我的问题的简单方法,我有一个ArrayList:ArrayListanimalList=newArrayList();/*IaddsomeobjectsfromsubclassesofAnimal*/animalList.add(newReptile());animalList.add(newBird());animalList.add(newAmphibian());它们都实现了一个方法move()-当调用move()时Bird会飞。我知道我可以使用这个访问父类(superclass)的通用方法和属性publicvoidfeed(IntegeranimalIn

java - 在java中的 super 调用之前创建一个对象

考虑到无法运行的简单java代码:publicclassBarextendsAbstractBar{privatefinalFoofoo=newFoo(bar);publicBar(){super(foo);}}我需要在super()调用之前创建一个对象,因为我需要将它推送到母类中。我不想使用初始化block,也不想做类似的事情:super(newFoo(bar))在我的构造函数中..如何在super调用之前向母类发送数据? 最佳答案 如果Foo必须存储在一个字段中,您可以这样做:publicclassBarextendsAbstr

java - 子类需要有构造函数吗?

我一直在学习继承,我只是好奇。我知道即使您不使用super()运算符,子类也会自动调用父类(superclass)的构造函数,所以我想知道子类是否有必要在其中包含构造函数. 最佳答案 如果父类(superclass)没有默认构造函数(或具有子类无法访问的构造函数),则子类需要一个构造函数。如果子类根本没有构造函数,编译器将自动创建一个public构造函数,它只是调用父类(superclass)的默认构造函数。关于调用super():每个构造函数必须做的第一件事是通过调用this()(可能带有一些参数)来调用同一类中的不同构造函数)或

java - 为什么使用 "this"关键字来获取父类(super class)方法

我看到一些Java示例使用this关键字来获取父类(superclass)方法。示例:this.superClassMethod()。通常情况下我们会使用super。有人可以举例说明为什么开发人员使用this而不是super吗?谢谢你。 最佳答案 this.method()和super.method()没有区别,直到method()得到在调用者的类中覆盖。例如,用classSuperClass{publicvoidmethod(){System.out.println("SuperClass");}}classSubClassext

java - 从子类更改父类(super class)实例变量的值

我发现我可以在子类中这样做:ParentClass.variable=value;但有人告诉我,更好的做法是使用get/set方法,而不是直接访问类外的变量。尽管这是针对我在另一个类中有该类的实例的情况,而不是针对子类和父类(superclass)。那么有没有更好的方法来做到这一点,哪种方法通常被认为是最佳实践? 最佳答案 您有很多选择。super.field=x您必须有权访问该字段才能执行此操作field=x您必须有权访问该字段才能执行此操作。您也不能在child中有另一个字段,否则只会设置child的字段。setParentFi

java - 好的设计 : How use fields of superclass

这个问题在这里已经有了答案:关闭11年前。PossibleDuplicate:Javaprotectedfieldsvspublicgetters如果我有B类扩展A并且在A中我有一些我也在B中使用的字段,最好使这些字段受到保护并从B类中调用它们或为此字段编写getter方法,因此使用此方法来自B级?(此字段在A的构造函数中设置)

java - 使用 super() 时幕后发生了什么

我很想知道当您使用super()调用父类(superclass)的构造函数时,幕后实际发生了什么。当一个对象从子类实例化时,子类是否继承父类(superclass)对象?或者它是如何工作的?这是我的引用代码:publicclassBicycle{//DeclaringbicyclesstatespublicintmovSpeed=0;publicintcadence=0;publicintcurGear=0;//ClassconstructorpublicBicycle(){}//ClassconstructorwithparamspublicBicycle(intmovSpeed,i

java - 从类和接口(interface)重新继承静态字段

interfaceA{publicstaticStringname="A";}interfaceB{publicstaticStringname="B";}classXimplementsA{}classYextendsXimplementsB{}publicvoidtest_getField(){try{assertEquals(B.class.getField("name"),Y.class.getField("name"));}catch(NoSuchFieldExceptione){fail("Gotexception");}}为什么Y.class.getField("name