【发布时间】:2015-08-29 00:04:08
【问题描述】:
这是关于在 Java 中包含反射的硬件分配。 假设我有 2 节课:
public class A{
bool foo(){...}
}
public class B extends A{
bool foo(){...}
}
假设我有一个接收Class<?> 参数的函数,并且我想检查foo 是否在某些派生类中被覆盖,但不知道是否有,我该怎么做?
我阅读了一些关于同一主题的问题,其中提到了 isBridge 或 getDeclaringclass,但无法弄清楚它们的作用。
我不得不提一下,我不太了解 Java。这是我正在学习的面向对象编程课程的一部分,因此它并不是要让我们成为 Java 专家,而是要展示其原理。这意味着我的问题的解决方案不应该太复杂。
【问题讨论】:
-
如果需要使用反射,任何解决方案都会很复杂。
-
方法是公开的还是包私有的,就像您的示例中一样?
-
该方法可以是私有的或公共的或介于两者之间的任何方法。与一般的反射相比,我的意思是复杂的。整个作业都是关于反思
-
你(或练习)所说的“在某些派生类中被覆盖”是什么意思?可以有任意数量的派生类,甚至在运行时添加,一般来说,在决定派生哪些类之前,您必须解决停机问题。如果没有明确给出作为参数的派生类,我认为这个问题没有意义。
标签: java inheritance methods reflection overriding