》多态其实就是多种形态,多种形式:
》两个最直接的体现
方法重写
方法重载
重载是静多态,重写是动多态
多态是指同一个方法的调用,由于对象的不同可能会有不同的行为。上述是一般对于多态的定义,实际上由于函数入口参数的不同也能构成多态,不过此处与前者定义不同之处在于不再强调对象不同。
对于重载而言,在方法调用之前,编译器就已经确定了所要调用的方法
,这称为“早绑定”或“静态绑定” ;
而对于重写,只有等到方法调用的那一刻, 解释运行器才会确定所要调用的具体方法,这称为“晚绑定”或“动态绑定”
。
多态的作用:消除类型之间的耦合关系。
抽象类和接口都是为多态服务的
重载overload和重写override的区别
位置 方法名 参数列表 返回值 访问修饰符
方法重载 同一个类 相同 必须不同 无关 无关
方法重写 子类中重写父类方法 相同 必须相同 必须相同 不能比父类更严格
总结一下,方法的重载:
1.发生在同一个类中
2.方法名相同
3.参数列表不同(参数的类型,个数,顺序不同)
4.和返回值类型无关
5.和方法的修饰符列表无关
注:判断是否为重载,跟方法的权限修饰符、返回值类型、形参变量名、方法体都没有关系!
方法重写的规则
l 在继承关系的子类中
l 重写的方法名、参数、返回值类型必须与父类相同
l 私有方法不能继承因而也无法重写
多态的深层次理解-多态的两个最直接的体现:方法重写和方法重载
原文:https://www.cnblogs.com/longmo666/p/13558328.html