重载中包含构造器的重载与方法的重载
重载的条件是保证方法的签名不一样(方法名与参数列表)
一 在构造器中必须保证参数列表不一样,其方法名必须是类名
构造器重载的三大作用:初始化定义的属性,添加逻辑判断,创建对象的途径,举例:
public Qn6(int id) {
super();
this.id = id;
}
public Qn6(int age, String name, int code,int id) {
this(id);
this.name = name;
if (age < 0 || age > 200) {
System.out.println("错误");
} else {
this.age = age;
}
if (code < 0 || code > 100) {
System.out.println("错误");
} else {
this.code = code;
}
}
二 在方法中方法名与参数列表保证两者其一不一样
//原始方法
public void shoult() {
System.out.println("animal shoult");
}
//重载一
public void shoult(int a) {
System.out.println("dog shoult");
}
//重载二
public void shoult_1() {
System.out.println("cat shoult");
}
重写的条件是保证方法的签名一样(方法名与参数列表)
在子类中包含与父类同方法签名的现象称为「方法重写(Override)」,有时也称为方法覆盖。我们可以说子类重写了父类的方法,也可以说子类覆盖了父类的方法。
子类重写方法的意义:子类继承了父类之后,调用父类的方法,就不需要重复写,节省代码量。
如果使用条件变更,父类的方法不能满足使用需求,那么就需要重写方法了,把父类的方法覆盖掉。重写,也能实现代码的多样性。
例如:
在父类中
public void shoult() {
System.out.println("animal shoult");
}
在子类中进行重写覆盖原来的父类中的方法
public void shoult() {
System.out.println("dog shoult");
}