java重写与重载的区别和注意事项
2007-11-30 16:06
741 查看
QUESTION NO: 3
1. class A {
2. protected int method1(int a, int b) { return 0; }
3. }
Which two are valid in a class that extends class A? (Choose two)
A. public int method1(int a, int b) { return 0; }
B. private int method1(int a, int b) { return 0; }
C. private int method1(int a, long b) { return 0; }
D. public short method1(int a, int b) { return 0; }
E. static protected int method1(int a, int b) { return 0; }
310-035中的题目,标准答案是A,C
A不是重载,A是重写!也就是覆盖!
覆盖不能降低原方法的"可见度"
class A {
protected int method1(int a, int b) { return 0; }
}
class B extends A {
public int method1(int a, int b) { return 0; }
}
那么B中只有一个method1(int,int)方法!
--------------------------------------------
重载是:
当多个方法具有相同的名字而含有不同的参数时产生
那么对参数不同的调用,实际调用不同的方法
也可以理解为实际上有两个方法,名字同,参数不同!
class A {
protected int method1(int a, int b) { return 0; }
}
class B extends A {
private int method1(int a, long b) { return 0; }
}
那么B有method1(int,int)和method1(int,long)两个方法!
因为"是"两个方法,所以其实
class B extends A {
PUBLIC int method1(int a, long b) { return 0; }
}
也是正确的
-------------------------------------------------------------------------
-------------
注意事项:
覆盖(不知道是不是OVERWRITE)注意
不能降低原方法的"可见度"
重载(不只道是不是OVERLOAD)注意
只有参数不同才能构成重载,"可见度",返回类型不同都不能构成方法的重载
重载不是:
重新写(载)
重载是:
多重(可能)载入
1. class A {
2. protected int method1(int a, int b) { return 0; }
3. }
Which two are valid in a class that extends class A? (Choose two)
A. public int method1(int a, int b) { return 0; }
B. private int method1(int a, int b) { return 0; }
C. private int method1(int a, long b) { return 0; }
D. public short method1(int a, int b) { return 0; }
E. static protected int method1(int a, int b) { return 0; }
310-035中的题目,标准答案是A,C
A不是重载,A是重写!也就是覆盖!
覆盖不能降低原方法的"可见度"
class A {
protected int method1(int a, int b) { return 0; }
}
class B extends A {
public int method1(int a, int b) { return 0; }
}
那么B中只有一个method1(int,int)方法!
--------------------------------------------
重载是:
当多个方法具有相同的名字而含有不同的参数时产生
那么对参数不同的调用,实际调用不同的方法
也可以理解为实际上有两个方法,名字同,参数不同!
class A {
protected int method1(int a, int b) { return 0; }
}
class B extends A {
private int method1(int a, long b) { return 0; }
}
那么B有method1(int,int)和method1(int,long)两个方法!
因为"是"两个方法,所以其实
class B extends A {
PUBLIC int method1(int a, long b) { return 0; }
}
也是正确的
-------------------------------------------------------------------------
-------------
注意事项:
覆盖(不知道是不是OVERWRITE)注意
不能降低原方法的"可见度"
重载(不只道是不是OVERLOAD)注意
只有参数不同才能构成重载,"可见度",返回类型不同都不能构成方法的重载
重载不是:
重新写(载)
重载是:
多重(可能)载入
相关文章推荐
- java中重载与重写的区别
- java中重写和重载的区别
- Java中重载与重写的对比与区别
- Java中重载和重写的区别
- java中重载与重写的区别
- Java中重载与重写的区别
- java中重载与重写的区别
- java中重写与重载的区别
- Java中重写Object类的equals方法和Hashcode方法的注意事项
- JAVA重载和重写的区别
- Java中的重载和重写区别
- Java--方法重写,重写(Override)与重载(Overload)区别
- forward redirct 转向和重定向区别;通过el和java代码在jsp页面取出参数,jsp:param注意事项
- Java中方法重载和方法重写区别
- Java中重载与重写的区别【转】
- 子类重写父类注意事项 java
- Java中重载(Overload)和重写(Override)的区别
- java中重载与重写的区别
- java中重载与重写的区别
- java重载、重写的区别