Java中多态和方法的重载和重写
重载(Overload):指在同一个类中,方法名相同,而参数列表不同,参数列表指参数的顺序、类型、个数。重载与方法的返回类型、可见类型无关(例1)。
具体例子:
重写(Overwrite):指的是在继承关系中,子类定义了与父类的同名方法且参数列表与父类方法完全一致。注意:子类的方法名、参数列表必须与父类(接口)定义的完全一致,否则不能称为覆写(例7);确认重写关系后,当返回类型为基本类型时(int、double、char、short、byte、float、bool、long、String
)子类覆写时不可以改变返回类型,当返回类型为引用型,子类返回的引用型只能为,父类返回类型的子类或相同类型,不可以为无关的引用类型。覆写不可以缩小父类方法的可见性!(例5)。
总结起来就是,首先确认子类方法名和参数列表是否与父方法完全一致,如果是,那么就是重写,语法要求方法返回类型务必和父类方法相同,且不可以减小该方法可见性;如果不是,则不是重写。
具体例子
顺便提一下,多态指的是动态绑定方法,而非类内变量。
1 | public class Father { |
1 | public class Father { |