是时候复习一下Java基础了(二)
说到Java的多态、重载、覆盖、重写,大部分人第一反应肯定是这都是最基础的。但是你真的都能说清楚吗?
多态
给父类引用传递不同的子类对象,多态分离出做什么和怎么做。由父类指出做什么,子类指出怎么做。这个之前说过了,现在举个例子:
class Animal{
void cry(){
}
}
class Dog extends Animal{
void cry(){
System.out.println("汪!!!");
}
}
class Cat extends Animal{
void cry(){
System.out.println("瞄~~~~~");
}
}
public class doIt{
public static void main(String[] args){
Animal animal;
animal = new Dog();
animal.cry();
animal = new Cat();
animal.cry();
}
}
上边的程序运行输出:
汪!!!
瞄~~~~~
重载(OverLoad)
方法名和返回值类型相同,但是参数列表不同。参数可以是类型不同,数量不同。最常见的重载就是构造函数的重载。
覆盖(Override)
发生于继承关系中,子类可以覆盖父类的可覆盖方法。只需要方法名相同就可以。子类优先调用覆盖后的方法。
重写(Overwrite)
同样发生于继承关系,与覆盖不同的是,重写过的方法,就好像父类中,没有存在过一样。
之后继续补充,说的不合适的欢迎指出。