(只是一个理论问题,我没有看到直接的实际用途)
有没有办法做类似的事情:
super.super.someMethod()
在Java?
super.someMethod()
存在,为什么不能调用超类的超类?
(当然你可以创建一个方法:
protected void someSuperMethod(){
super.someMethod();
}
在超级类中并在具有相同效果的子类中调用它,但有没有直接的方法,如果没有,为什么?)
S上。
答案 0 :(得分:0)
有一些丑陋的解决方法,但不应该使用它们,因为这是不好的做法。
当你从一个对象继承时,它很好,但你不应该直接访问这个对象的父对象,因为改变它的行为也可能改变你的第一个父对象的行为。
你提出的解决方法很好,因为它是一个在父本身中定义的方法,因此它不会改变行为,因为父访问它自己的父本身而不是访问它的子进程,父进程首先绕过它父节点。
这主要是为什么没有直接这样做的原因。如果你想访问祖父母中的某些东西,那么它应该在第一个父母中完成,而在你的孩子中你告诉父母将父母访问它。
假设您定义了A,B和C类型的Object。