1、重载和重写的区别?
1>首先要回答这个问题,我们应该先了解为何要引入方法的重载,方法重载最有代表性的就是构造器了,我们知道,构造器是和类名一致的方法,但我们要用不同的方法来初始化对象时,由于原有的构造器太过单一,不能满足我们的要求,这时就需要方法重载。
1>重载(Overload):首先是位于一个类中或者其子类中,具有相同的方法名,但是方法的参数不同,返回值类型可以相同也可以不同。
重载的特征:
(1)方法名必须相同;
(2) 方法的参数列表一定不一样;
(3)访问修饰符和返回值类型可以相同也可以不同。
其实简单而言:重载就是对于不同的情况写不同的方法。 比如,同一个类中,写不同的构造函数用于初始化不同的参数。
2>重写(override):一般都是表示子类和父类之间的关系,主要特征:方法名相同,参数相同,但具体的实现不同。
重写的特征:
(1)方法名必须相同,返回值类型必须相同
(2)参数列表必须相同
(3)访问权限不能比父类中被重写的方法的访问权限更低。例如:如果父类的一个方法被声明为public,那么在子类中重写该方法就不能声明为protected。
(4)子类和父类在同一个包中,那么子类可以重写父类所有方法,除了声明为private和final的方法。
(5)构造方法不能被重写.