由于特殊原因,不想直接在父类中修改方法,想写一个子类重写父类种的这个方法,并且把此方法的返回值返回给父类读取,以便父类得到一个新的值,并且可以处理这个新值。应该怎么办呢,困惑。谢谢

解决方案 »

  1.   

    你重写方法就行了,只要父类调用这个方法,就会使用你新写的那个了。这也是override出现的原因。
      

  2.   

    父类 Base  子类Child
    如果父类中有a()方法,你需要改写a()方法,你可以在子类中重写这个方法
    然后利用多态 Base b=new Child();   父类引用指向子类对象
    这样你写b.a()的时候其实是调用的子类的a()方法,这样父类不就正好得到你需要的那个新值了吗?
      

  3.   

    只能子类重写然后 子类自己使用 父类应该是无法了解到子类的存在的class Parent {
        public void methodA() {
            Object obj = methodB();
        
        }    protected Object methodB(){
        }
    }是这个意思吗?只要在子类中重写methodB() 然后调用super.methodA()
      

  4.   

    像这样:
    class A {
        public String method() {
            return "A";
        }
    }
    class B extends A {
        public String method() {
            return "B";
        }
    }
    public class ExtendTest {
        public static void main(String[] args) {
            A a = new B();
            System.out.println(a.method());
        }
    }
      

  5.   

    Base b=new Child(); 是个好办法,父类的确就可以得到子类的返回值了。可是如果调用的方法是没有返回值的(void),方法本身仅是改变了一个变量的值但没有返回(文件中其他方法可以找到这个变量),这样又如何修改呢?