子类重写父类方法:方法名相同,参数相同。
该方法假如是 get()
此时,在外部调用时,调用子类该方法 显示重写方法,用父类调用显示原有方法
如果在父类中调用该方法,显示重写方法!!!!!!这个很重要
重载:方法名相同,参数不一样
重载可以发生在一个类中,也可以发生的继承中
父类的方法子类可以重载:理由是在子类实例中,仍然可以调用父类的被重载方法
深入jvm分析:
重写是动态分配的,它在意的是实际类型,它关注的是方法的接收者,而不会在意传来的变量是什么类型的,而且java只是动态单分派。这也是静态语言的原因
重载是静态分派的,它在意的是静态类型。它即关心静态类型也关心参数。所以他是静态对分派类型。
实际类型/静态类型
Man chi; 在这里Man就是静态的,被称为静态类型,而chi是实际类型。
静态类型在编译时就确定好了,但是实际类型在运行的时候才会确定。
网友评论