天天看点

面试 || 07 谈一下你对多态的理解

所谓多态,就是同一个操作,作用在了不同的对象上,就会有不同的解释,进而产生不同的执行结果。使用时,是采用父类指针指向子类对象的方法。其中,重载和重写是常见的实现多态的手段。

重载就是对于类的方法来说,方法名相同,参数列表不同的方法之间就构成了重载关系。对于重载有两个地方是需要注意的,首先类的方法也包含的从父类继承得到的方法,也就是说重载关系可以出现在父类方法和子类方法之间,接着就是需要深刻理解参数列表,参数列表是说是指三项,参数类型,参数名,参数顺序,这三项有一个不同就说明参数列表不同。(不用管方法的修饰符和返回类型以及抛出的异常)

重写就是在当父类中的某些方法不能满足要求时,子类中改写父类的方法,使方法满足自己的使用需。对于重写有几个地方需要注意,(1)重写是只重写函数体内部的代码,其他地方不变;(2)重写的函数与被重写的函数方法名、参数、返回值相同;(3)子类方法不能缩小父类方法的访问权限。也就是说如果父类中是public方法,子类继承后将访问权限降至private,那么子类中重写以后的方法则不能被外部对象访问了,这样就破坏了继承的含义。

面试 || 07 谈一下你对多态的理解