Java 获取对调用超类方法的对象的引用
我想写一个抽象类。在该类中,我有一个方法,该方法应该访问调用该方法的实际对象。 然而,“this”将只返回我自己编写的“对象的一部分”(抽象部分) 要详细说明: 如果我正在编写的方法具有我的类类型的参数,那么我想要的如下所示:Java 获取对调用超类方法的对象的引用,java,polymorphism,Java,Polymorphism,我想写一个抽象类。在该类中,我有一个方法,该方法应该访问调用该方法的实际对象。 然而,“this”将只返回我自己编写的“对象的一部分”(抽象部分) 要详细说明: 如果我正在编写的方法具有我的类类型的参数,那么我想要的如下所示: public abstract class MyClass { public void foo(MyClass invoker) { ... } } 上面的代码允许我访问调用该方法的对象,但这样编写会很乏味,因为这应该成为我想提供给其他人的库的一部分,我
public abstract class MyClass {
public void foo(MyClass invoker) {
...
}
}
上面的代码允许我访问调用该方法的对象,但这样编写会很乏味,因为这应该成为我想提供给其他人的库的一部分,我无法确定,传递的参数实际上是正确的对象,而不是从MyClass派生的类的其他对象
有没有一种方法可以按照getNestingObject()的思路调用某个对象,或者我是否特别需要给该方法一个参数,并不断地推断每个调用的“this”
最后,由于我不是java大师,一个可能不太明显的问题是:
是否存在安全原因,为什么上述概念存在缺陷?有人可以吗
恶意滥用那种关键词
我想写一个抽象类。在那门课上我有一个方法
它应该访问方法所针对的实际对象
打电话。但是,“this”将只返回
我自己写(抽象的)
此
将返回对“整个”对象的引用,而不是对“部分”的引用。为了证明这一点,如果将此引用强制转换为层次结构中较低的类,则可以使用此引用的实例访问此类的任何属性或方法
但是,强制转换此引用的实例不是一个好的设计实践。一般来说,您应该在MyClass中用一般行为编写一个foo方法,并用每个类的特定行为重写它。如果要使用父类的foo方法,可以使用super
调用它