java - 使用子对象 Java 访问父字段

标签 java c++

我的背景是 C++,我们可以使用子类对象访问父类的公共(public)字段。示例:

#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.
}

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

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?
    }

}

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

那么,打印/访问带有子类对象引用的 Java 父类方法的语法应该是什么? 我试过。 obj.super.show(); 等但不起作用。

最佳答案

super只能在类里面使用。不在它之外。

因为你 ovveride,你不能直接调用 super 方法。

你只能做

obj.show();

如果你仍然想调用 super 方法,你可以将你的方法修改为

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

更新:

来到 Parent 和 Child 覆盖返回类型,

这篇文章可能有帮助

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

关于java - 使用子对象 Java 访问父字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32738342/

相关文章:

c++ - 使用别名将通用引用限制为单一类型

java - 如何让 JNA 从一个 jar 文件中提取多个 DLL 文件?

Java 抽象和接口(interface)

c++ - 混合 pthread.h 和 C++11 标准库线程功能是否安全?

c++ - 如何获取/设置 CFB_Mode 加密对象的内部状态?

c++ - 如何使用fout()

java - 在关闭程序之前添加消息

java - Android Volley 库给出了蜂窝数据连接超时错误

java - 检查 GPS 和蓝牙是否已激活时出现问题

c++ - Doxygen:是否可以对 C++ 函数参数进行分组,即具有相同的文档而不复制它?