多态的理解

例如:
class Father{
public void test(){
System.out.println("this is father");
}
}

class Son extends Father{
public void test(){
System.out.println("this is son");
}
}


public class Test{
public static void main(){
Father f=new Son();
f.test();
}
}

结论是 this is son 对于这个大家都知道应该是多态,采用的是动态绑定的方法,问题是这个多态的原理是怎么实现的?或者说多态的核心是怎么一回事?我认为因为创建了一对象Son(),所以引用f就指向这个对象,故调用的是Son中的方法,但是不知道正解如何,希望有人能给予指点!

方法的话是调用实际对象里的,但是如果是变量的话就会调用Father里的,所以这里的text()方法将会调用Son里的方法
我觉得这只是多态的表现的特征,但是多态的内部特征还是没有涉及到。