小编Din*_*esh的帖子

Java中的动态方法查找

我试图在Java中调用Dynamic方法调用,而不能理解为什么java不允许我从子类调用方法而不是超类方法.

例如:如果我有2个班级TestTest2.Test2 继承自Test类

该方法someFunction()在子类中被重写:

考试班

public class Test {

    public Test(){
        System.out.println("I am Test class constructor called with no values");
    }

    public void someFunction(){
        System.out.println("I am some function belonging to Test Class");
     }
  }
Run Code Online (Sandbox Code Playgroud)

和Test2类:

public class Test2 extends Test{

    public Test2(){
       System.out.println("Constructor of Test2 with no values");
    }

    public void somFunction(){
        System.out.println("I am someFunction overridden in Test2");
    }
}
Run Code Online (Sandbox Code Playgroud)

所以当我尝试以这种方式实例化Test类时:

    Test t1 = new Test2();
    t1.someFunction(); // this should call Test2.someFunction()
Run Code Online (Sandbox Code Playgroud)

我得到的输出是: …

java inheritance overriding method-invocation

0
推荐指数
1
解决办法
5163
查看次数

标签 统计

inheritance ×1

java ×1

method-invocation ×1

overriding ×1