使用子对象Java访问父字段

时间:2015-09-23 11:27:46

标签: java c++

我的背景是C ++,我们可以使用Child Class Object访问Parent Class的公共字段。例如:

Pin.find(1).user

我如何在Java继承中做同样的事情?

#include <iostream>
class A{
    public:
        void show(){
            std::cout << "A";
        }
};
class B:public A{
    public:
        void show(){
            std::cout << "B";
        }
};
int main(){
    B obj;
    obj.A::show(); // it will print A.
}

我还有另一个关于覆盖的问题,但由于Stackoverflow规则,我会问作为单独的问题。

那么,使用Child Class Object Reference打印/访问Java的Parent类方法应该是什么语法? 我试过了。 public class Serial { public void show(){ System.out.println("Serial"); } } public class Testing extends Serial { @Override public void show(){ System.out.println("Testing"); } public static void main(String[] args){ Testing obj=new Testing(); obj.show(); // it print Testing but how to Print Serial? } } 等但不起作用。

1 个答案:

答案 0 :(得分:1)

super只能在课堂上使用。不在它之外。

由于你不能直接调用超级方法。

您只能做

obj.show();

如果您仍想调用超级方法,可以将方法修改为

 @Override
    public void show(){
        super.show();
        System.out.println("Testing");
    }

更新:

来到父级和子级覆盖返回类型,

这篇文章可能会有所帮助

http://codeinventions.blogspot.in/2014/11/covariant-contravariant-and-class-invariant-example-and-difference-in-java.html