草庐IT

subclass

全部标签

java - Java继承中的私有(private)成员

有人告诉我,对于Java子类,它可以继承其父类(superclass)的所有成员。那么这是否意味着私有(private)成员(member)呢?我知道它可以继承protected成员。谁能给我解释一下。我现在完全糊涂了。 最佳答案 不,私有(private)成员不继承,因为私有(private)成员的范围仅限于定义它的类.只有public和protected成员被继承。来自JavaDocumentation,PrivateMembersinaSuperclassAsubclassdoesnotinherittheprivatemem

java - 存储接口(interface)实现和检索特定实现的良好模式是什么?

我正在编写一个模拟器,它有几个接口(interface),所有模拟对象都实现了这些接口(interface)。Entity接口(interface)具有所有对象都必须具有的方法,例如ID检索和推进对象状态的时间步长。Collidable扩展了Entity,并表示在运行碰撞检测算法时应考虑的具有体积和位置的任何东西。Field扩展了Entity,并表示将位置映射到值的任何内容;这些用于模拟磁场之类的事物,这些事物遍及世界但没有体积或物理形式。RigidBody是一个实现Collidable并提供刚体动力学算法的类。我有一个World类,它管理所有Entities并具有推进模拟器时钟和划分

java - 我怎样才能避免在子类中创建无用的传递构造函数只是为了将参数传递给 "super()"?

在Java中,据我所知,子类不会继承具有参数的构造函数。例如publicclassParent{publicParent(intx){DoSomethingWithX(x);}}publicclassChildextendsParent{//Compilefailswith"ImplicitsuperconstructorParent()isundefined//fordefaultconstructor.Mustdefineanexplicitconstructor}修复它的唯一方法是在Child类中创建一个无用的传递构造函数:publicclassChildextendsParen

带有子类参数的Java getMethod

我正在编写一个使用反射来动态查找和调用方法的库。只给定一个对象、一个方法名称和一个参数列表,我需要调用给定的方法,就好像该方法调用已明确写入代码中一样。我一直在使用以下方法,在大多数情况下都有效:staticvoidcallMethod(Objectreceiver,StringmethodName,Object[]params){Class[]paramTypes=newClass[params.length];for(inti=0;i但是,当参数之一是该方法支持的类型之一的子类时,反射API会抛出NoSuchMethodException。例如,如果接收器的类定义了testMeth

java - 什么是将 2 个类合并为 1 个类,其中一个类是另一个类的子类?

我有:一个抽象类A一个扩展A的抽象类B除B外没有其他扩展A的类扩展B的其他类为了减少类的数量,我希望将A和B合并为一个类,并让其他类从新合并的类扩展。这次重构的名称是什么?附言在我的实现中,它是用Java实现的,这个重构可以在IntelliJ中自动完成吗? 最佳答案 IntelliJ的内联父类(superclass)执行父类(superclass)到子类的合并。InlineSuperclass 关于java-什么是将2个类合并为1个类,其中一个类是另一个类的子类?,我们在StackOve

Java:子类化泛型类

我有一个通用类,我希望按如下方式对其进行子类化:publicclassSomeTableextendsBaseTable{publicSomeTable(introws,intcols){super(rows,cols,SomeTableEntry.class);//Doesnotcompile://Cannotfindsymbol:constructorBaseTable(int,int,java.lang.Class)}}...通用父类(superclass)是:publicclassBaseTable{publicBaseTable(introws,intcols,Classcl

java - 继承与接口(interface)

我一直在尝试理解涉及接口(interface)时的继承。我想知道子类是如何创建的,如果它们遵循以下内容:例如,假设我有:实现接口(interface)I的父类(superclass)和几个扩展父类(superclass)A的子类我的问题我是否必须在所有扩展A的子类中提供接口(interface)方法“q和r”的实现?如果我不在子类中提供接口(interface)的实现,我是否必须将该子类设为抽象类?任何子类都可以实现I吗?例如C类扩展A实现I,这可能吗?即使它已经扩展了实现I的父类(superclass)?假设我没有从接口(interface)I提供方法r的实现,那么我将不得不创建父类

c++ - 将继承与基于 stdvector 的植绒结合使用

目前我正在完成一项任务,为此我必须制作一个具有不同子类且行为不同的植绒系统。我正在使用OpenFrameworks和C++。我对开放框架和C++还很陌生。作为基础,我使用了这段代码:https://sites.google.com/site/ofauckland/examples/ofxflocking-example但问题是,这段代码的结构与我习惯的不同;使用“new...”创建新的类对象我的问题是,如何使用两个植绒类?开始时,首先只使用不同的颜色。到目前为止我添加的子类之一是:classTeam1:publicBoid{public:Team1():Boid(){};Team1(i

c++ - 将子类传递给采用其父类(super class)的函数

假设我有三个类-Animal、Cat和Dog,其中Cat和Dog是Animal的子类(这听起来确实像第一个类,但我保证这不是作业,只是简化了真正的代码)Dog*spike=newDog();Cat*puss=newCat();intmain(intargc,char**argv){function(spike,puss);return0;}voidfunction(Animal*pet,Animal*pet2){magic->andSoForth();}现在这会产生以下错误:Cannotconvertparameter1from'Dog*'to'Animal'Noconstructor

带指针的 C++ STL 容器 : A few questions

假设您有一个类型T和子类型TSub1、TSub2等。这些子类型中有几个是用newTSub(...)初始化的。然后将生成的指针作为元素存储在:listtsList;相同的指针也用作键:maptsMap;现在考虑对tsList进行迭代,迭代器变量为tIter。这是我的问题:WilltsMap[*tIter]andtsMap.find(*tIter)bothsuccessfullyfindthecorrectassociatedvalue?Willdelete*tItersuccessfullyfreethefullmemoryblockallocatedfortherelevantTSub