因为最近学习的内容好多都有所相似的地方,自己脑子里总是感觉很乱,所以今天在这里梳理一下这两个知识点,不到位、不准确的地方希望各位看官多多指教、不吝赐教
重载(Overload)
I .定义:在一个类中定义多个相同名称的方法,即为重载。
II. 要求:
1)方法名称相同
2)参数列表不同
3)与访问修饰符、返回值无关
public class TestOverload{
public static void main(String[] args) {
Student s = new Student();
s.a();
s.a("jack");
s.a("tom", 18);
}
}
class Student{
String name;
int age ;
double score;
***//同一个类中 方法名称相同 参数列表不同构成重载 (参数类型、个数任何一个不同或者都不相同均构成重载)***
**//与访问修饰符、返回值类型均无关!!!**
//无参方法
public void a(){
System.out.println("我是老大");
}
//一参方法
public String a(String name ){
System.out.println("老二叫"+name);
return name;
}
//两参方法
void a(String name , int age){
System.out.println("一个"+age+"岁的"+"老三叫"+name);
}
}
重写(Override)
I.定义:又称覆盖,是子类继承父类的属性和方法后,子类的方法可能会因子类自身特点而特殊化,但又是子类所必须具有的方法,因此通过子类继承父类后,重新写一个新的方法,来达到覆盖原有父类方法的目的。
II.要求:
- 方法名、参数表、返回值,必须与父类完全相同。
- 访问修饰符应与父类相同或比父类更宽泛。
public class TestStudent{
public static void main(String[] args) {
Baby b = new Baby();
b.drink();
}
}
class Father{
String name;
int age ;
public void drink(){
System.out.println("father不需要喝奶");
}
}
class Baby extends Father{
public void drink(){
System.out.println("baby需要喝奶");
}
}
转载:https://blog.csdn.net/qq_33472491/article/details/104502843
查看评论