Java - 从子对象获取父对象

时间:2014-11-13 03:04:04

标签: java oop inheritance

我试图从父对象获取基础对象,但我无法做到。 我们有这样的事吗?`

public class A
{
}

public class B extends A
{
    A obj = this.getParentObject();     
}

由于 法赫德穆拉吉

2 个答案:

答案 0 :(得分:2)

您应该阅读 super 关键字和 inheritance 如何在Java中运行。

在一般情况下,获取超类或您的类扩展的类并不是必需的。见下图:

public class A {

    protected int value;

    public A() {
        this.value = 2;
    }

}

public class B extends A {

    public B() {
        System.out.println(value); // prints 2
    }

}

要引用超类,请使用 super 关键字。见下面的例子:

public class A {

    public void doStuff() {
        System.out.println("parent");
    }

}

public class B extends A {

    public B() {
        doStuff(); // prints "child"
        super.doStuff(); // prints "parent"
    }

    @Override
    public void doStuff() {
        System.out.println("child");
    }

}

我希望这能回答你的问题。


hacky和一般不需要的东西

当然,您可以获取父对象。为此,我建议为返回自身的A类创建一个受保护(或公共)方法。请参阅下面的代码示例:

public class A {

    protected A getMe() {
        return this;
    }

}

public class B extends A {

    public B() {
        A superInstance = getMe();
    }

}

这是未经测试的代码,但我无法理解为什么它无法运行。

答案 1 :(得分:0)

没有这样的事情。你实例化一个B类的对象,它扩展了A.它只是一个对象,不包含"包含"一个里面。让我们说A还有其他属性:

public class A
{
  public int a;
}

public class B extends A
{
  public int b;
}

B类中的对象将同时具有属性a和b。

" super"您可以从基类访问方法的关键字。但你无法获得对象"来自基类。