方法的重载(overload)
- 在同一个类中方法名相同,参数列表不同(个数不同,类型不同,顺序不同)
- 和返回值和权限修饰符无关
方法重载示例(构造方法)
package waking.test.cc;
public class Demo01 {
private int id;
private String name;
private String kind;
private int age;
public Demo01() {
super();
}
public Demo01(int id, int age) {
super();
this.id = id;
this.age = age;
}
public Demo01(int id, String name, String kind) {
super();
this.id = id;
this.name = name;
this.kind = kind;
}
public Demo01(String name, String kind, int age) {
super();
this.name = name;
this.kind = kind;
this.age = age;
}
public Demo01(int id, String name, String kind, int age) {
super();
this.id = id;
this.name = name;
this.kind = kind;
this.age = age;
}
}
方法的重写(override)
- 在继承的过程中,子类从父类继承过来的成员变量或方法无法满足自己的需求,可以在子类完善父类的方法,这个过程叫做方法的重写,方法的重写相当于子类覆盖父类的方法
代码示例
package waking.test.cc;
public class Demo02{
public static void main(String[] args) {
Stu s = new St();
s.study();
}
}
class Stu{
private String name;
private int age;
private String gender;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getGender() {
return gender;
}
public void setGender(String gender) {
this.gender = gender;
}
public void study() {
System.out.println("我很爱学习!!");
}
}
class St extends Stu{
@Override
public void study() {
super.study();
System.out.println("你可以好好学习吗?");
}
}
方法的重写和方法的重载的区别
方法的重载:Overload,在同一个类中,方法名相同,参数列表不同,互为重载方法。
方法的重写:Override,在继承的过程中,在子类重写父类继承过来的方法,方法名,参数列表,返回值类型必须相同,访问权限符不能比父类更严格
有关方法重写之后的调用
- 只要在子类中重写父类的方法,通过子类对象调用该方法一定是子类重写的方法
- 通过父类对象调用该方法,先调用父类的方法,在调用子类中的方法,上面列子可以体现