java基础之向上造型之后,调用方法的规则
首先哪个类型的引用,它点的只能是他里面出现过的方法名字,子类新加的方法名,父类引用是不能点出这个方法的。
其次若子类重写了某个方法,父类点这个方法时父类的方法会被覆盖,调出的是子类重写的方法!重写是虚拟机运行期执行,
根据对象的不同而不是引用类型的不同,去调用不同的版本。重载是编译期执行,虚拟机会检查语法问题,生成.class文件(字节码文件)
代码
public class Excies1 { public static void main(String [] args){ father father=new son(); father.staticMethod(); father.method(); son son=new son(); son.staticMethod(); son.method(); } } class father{ public static void staticMethod(){ System.out.println("父类的静态方法"); } public void method(){ System.out.println("父类的普通方法"); } } class son extends father{ public static void staticMethod(){ System.out.println("子类的静态方法"); } public void method(){ System.out.println("子类的普通方法"); } }
显示结果:
父类的静态方法
子类的普通方法
子类的静态方法
子类的普通方法