总是爱混淆这两个概念 ,今天我来总结一下这个知识点吧! ————————————————————————————重写Override—————————————————————————————————————— 从字面上看:重写就是 重新写一遍的意思。其实就是在子类中把父类本身有的方法重新写一遍。 注意是:子类重写父类的方法 叫 重写! 要求:方法名,参数列表,返回值类型都相同的情况下 *** 作:对方法体进行修改或者重写 注意:子类函数的访问权限不能少于父类的 1.发生在父类与子类之间 2.方法名,参数列表,返回类型(除过子类中方法的返回类型是父类中返回类型的子类)必须相同 3.访问修饰符的限制一定要大于被重写方法的访问修饰符(public>protected>default>private) 4.重写方法一定不能抛出新的检查异常或者比被重写方法申明更加宽泛的检查型异常 例如: public class Father { public static void main(String[] args) { Son s = new Son(); s.sayHello(); } public void sayHello() { System.out.println("Hello"); } } class Son extends Father{ @Override public void sayHello() { // TODO Auto-generated method stub System.out.println("hello by "); } } ——————————————————————————————重载Overload———————————————————————————————————————— 在一个类中,同名的方法如果有不同的参数列表 (参数类型不同、参数个数不同甚至是参数顺序不同)则视为重载 要求:在同一个类中,同名的方法 *** 作:参数类型、参数个数、参数顺序 的改变 注意:重载对于返回值的类型没有要求,这里注意要和重写区分,重写要保持返回值类型 相同,不能通过返回值类型来判断重载 总结:1、方法的重载体现了一个类中的多态性 2、重载主要是对同类中同名方法参数的改变与不同 3、重载与返回值类型无关!!!!!!!!! 例子: public class Father { public static void main(String[] args) { Father s = new Father(); s.sayHello(); s.sayHello("wintershii"); } public void sayHello() { System.out.println("Hello"); } public void sayHello(String name) { System.out.println("Hello" + " " + name); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)