Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取对调用超类方法的对象的引用_Java_Polymorphism - Fatal编程技术网

Java 获取对调用超类方法的对象的引用

Java 获取对调用超类方法的对象的引用,java,polymorphism,Java,Polymorphism,我想写一个抽象类。在该类中,我有一个方法,该方法应该访问调用该方法的实际对象。 然而,“this”将只返回我自己编写的“对象的一部分”(抽象部分) 要详细说明: 如果我正在编写的方法具有我的类类型的参数,那么我想要的如下所示: public abstract class MyClass { public void foo(MyClass invoker) { ... } } 上面的代码允许我访问调用该方法的对象,但这样编写会很乏味,因为这应该成为我想提供给其他人的库的一部分,我

我想写一个抽象类。在该类中,我有一个方法,该方法应该访问调用该方法的实际对象。 然而,“this”将只返回我自己编写的“对象的一部分”(抽象部分)

要详细说明: 如果我正在编写的方法具有我的类类型的参数,那么我想要的如下所示:

public abstract class MyClass {
  public void foo(MyClass invoker) {
    ...
  }
}
上面的代码允许我访问调用该方法的对象,但这样编写会很乏味,因为这应该成为我想提供给其他人的库的一部分,我无法确定,传递的参数实际上是正确的对象,而不是从MyClass派生的类的其他对象

有没有一种方法可以按照getNestingObject()的思路调用某个对象,或者我是否特别需要给该方法一个参数,并不断地推断每个调用的“this”

最后,由于我不是java大师,一个可能不太明显的问题是: 是否存在安全原因,为什么上述概念存在缺陷?有人可以吗 恶意滥用那种关键词

我想写一个抽象类。在那门课上我有一个方法 它应该访问方法所针对的实际对象 打电话。但是,“this”将只返回 我自己写(抽象的)

将返回对“整个”对象的引用,而不是对“部分”的引用。为了证明这一点,如果将此引用强制转换为层次结构中较低的类,则可以使用此引用的实例访问此类的任何属性或方法

但是,强制转换此引用的实例不是一个好的设计实践。一般来说,您应该在MyClass中用一般行为编写一个foo方法,并用每个类的特定行为重写它。如果要使用父类的foo方法,可以使用
super
调用它