问一个关于override的问题

问一个关于override的问题,小弟基础不是很强悍,望见谅,请问在android中重写了父类接口中的方法后,子类中重写的该方法时何时会被调用? 简单说就是下面的代码何时会被调用到,如何调用
@override
public void check{

............

}

子类内部调用 check、外部通过子类变量调用 check,都是调用子类的重写方法。
如果把子类赋给一个父类变量,通过父类变量调用 check,都变成调用父类的方法了。

你确定把子类赋给父类变量,通过父类变量调用check,调用的是父类的方法?????

你 new 出来的对象是哪个对象就调用哪个类的check方法,引用不管是父类型还是子类型,调用的方法只和你new出来的实体对象类型相关。

Class classFather{
classFather();
check(){
syso("classFather check")
}
}

Class classSon extend classFather{
classSon();
check(){
System.out.println("classSon check");
}
}

main(){
classFather cf= new classSon();
cf.check();

classFather newcf=(classFather)cf;
newcf.check();

}

输出分别都是 classSon check
一句话,当左右类不同的时候,左边能够写出来的方法是左边类的方法,=右边是真正执行的方法所属于的类,也就是对象属于哪个类,new谁,执行谁的方法,如果进行了强制类型转换,对象是new谁的还是不变的。

从new的实例开始,向父类寻找,先找到谁就调谁