我把我的关于多态的总结给你看看,看看你就明白了。如果有什么不懂的可以说
多态的两种表现形式
1.重载简介(overload)
重载要求发生在同一类中。
我们知道,标识一个函数除了函数名外,还有函数的参数(个数和类型,顺序)。也就是说存在这样的情况:(一个类中)可以有两个或更多的函数,叫同一个名字而他们的参数列表不同。这种情况就是重载
示例:
public void a(int a){}
public int a(){}
public void a(int a,String s){}
我的总结:方法重载,方法名相同,但是参数列表不一致!(和方法覆写不一样,方法覆写的方法名和参数列表都必须一样),注意方法重载和方法覆写不同!
2.覆盖(override)
必须有继承的情况下才有覆盖发生,覆盖的执行者是子类。
当一个类(我们叫他子类)继承了另一个类(我们叫他父类)之后,他就具有了父类的全部方法。如果只是单纯的继承,那我们其实是在复制一个一个的父类,这是没有意义的。所以子类继承父类后,必须重写父类的方法(功能)。方法在父类中可能只是一个雏形,一个框架,真正在功能实现中大显身手的是子类重写后的方法,当我们调用这样的方法的时候,就是在执行子类的过程,父类的方法就被覆盖了。
注意:覆盖的时候函数名和参数要和父类中完全一样,不然你的方法对父类中的方法就不起任何作用,因为两者是两个函数,毫无关系。
提醒:这个在子类父类访问的时候介绍过了,不会看前边。
方法覆写产生原因:
当父类中某个方法不适合于子类时,子类出现父类一模一样的方法.
判断必杀技:子类方法前加上@Override能编译通过,表明是方法的覆写。 |