首页 > 代码库 > java实现多态 方法的重写和重载的区别
java实现多态 方法的重写和重载的区别
1.方法的重写
思路:先写一个父类People,在类中定义一个 print方法 ,然后写一个子类 Student 继承父类,重写print方法。
//父类
class People{
public void print(){
System.out.println("这是父类的print方法!");
}
}
//子类 继承父类
class Student extends People{
public void print(){
System.out.println("这是子类的print方法!");
}
}
//测试类
public class Test{
Student t=new Student(); 生成子类的对象
t.print(); //子类对象 调用print方法
}
运行结果: 这是子类的print方法!
分析:子类继承父类后重写父类的方法,子类对象调用时,调用的是子类的print方法。
重点: 方法的重写,不改变方法的 返回值类型,参数列表;改变的只是方法中的内容,这是重写。
备注:方法重写后,可用super.方法名();调用父类中未被重写的方法。
2.方法的重载
思路:先写一个父类People,在父类中定义多个方法名print相同,但参数列表或返回值类型不同的方法;子类继承People类。重载这些方法。
public class People {
String name;
int age;
void print(){
System.out.println("姓名:" +name+"年龄:" +age);
}
void print(String a,int b){
System.out.println("姓名:" +a+"年龄:"+b);
void print(String a,int b,intC){
System.out.println("姓名:"+a+"年龄:" +b+"ID号:" +c);
}
void print(String a,int b,doubleC){
System.out.println("姓名:"+a+"年龄:" +b+"ID号:"+c);
}
}
public class Test{
publicstaticvoidmain(String args[])
{Personpl=newPerson();
p1.nanle="李明";
p1.age=22;
p1.print();
p1.print("王小早",19);
p1.print("金波",18,100325);
p1.print("婉宁",25,110903);
}
}
运行结果:
姓名:李明年龄:22
姓名:王小早年龄:l9
姓名:金波年龄:18ID号:10 00325
姓名:婉宁年龄:25ID号:110903
分析:方法的重载,只要方法名相同,返回值类型和参数列表可以不痛。子类继承父类时,可根据返回值类型 和 参数列表的异同,来决定调用重载的哪个方法。
java实现多态 方法的重写和重载的区别