- 重载属于静态分配,在编译时编译器已经确定调用的是哪个方法,所以看参数的声明类型,也叫作静态类型(即赋值号的左边。)
- 方法重载overload。方法重载发生在同一个类里面两个或者多个方法的方法名相同但是参数不同的情况。
- 方法覆盖override是子类覆盖掉了父类的方法。方法覆盖必须有相同的函数名、参数列表和返回值类型。
- 动态分配是在运行时才会确定,会先去声明类型的类中找到是否存在这个方法,然后根据动态方法链从实际类型开始找到并且调用最后重写(重写就是覆盖,子类覆盖父类)这个方法的最新方法。
- 重载的定义:若两个方法方法名相同,但是参数不一致,那么可以说一个方法是另一个方法的重载。具体表现是:
(1) 方法名相同
(2) 方法的参数类型,参数个数不一样
(3) 方法的返回类型可以不相同
(4) 方法的修饰符可以不相同
(5) Main方法可以被重载
- 在静态方法里没有重写(重写就是覆盖,子类覆盖父类)一说,所以没有动态链的实现,而是被隐藏,要调用只能通过父类名.方法名。
public class Demo{
public static void main(String[] args)
{
Collection<?>[] collections =
{
new HashSet<String>