因为最近学习的内容好多都有所相似的地方,自己脑子里总是感觉很乱,所以今天在这里梳理一下这两个知识点,不到位、不准确的地方希望各位看官多多指教、不吝赐教 重载(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需要喝奶");
}
}
|