假设我有两个类A和B,其中A是B的超类。现在,我编写一个函数(重写),在两个类中都说funct()。然后,如果我想从B的对象调用A中的funct(),可以吗?

最佳答案

给定类

class A {
    public void funct() {...}
}

class B extends A {
    @Override
    public void funct() {...}
}


你问


  然后,如果我想从B的对象调用A中的funct(),是吗
  可能?


所以我们来

B b = new B();
b.funct();
A a = b;
a.funct();
((A)b).funct();


由于多态性和后期绑定,上述所有功能都具有相同的作用。

调用超类的实现的唯一方法是通过super关键字获取对该成员的引用。

class A {
    public void funct() {...}
}

class B extends A {
    @Override
    public void funct() {
        super.funct();
    }
}

10-06 01:39