方法的重写:
同一个类中,方法名相同,参数列表中的个数或者参数的种类不同才能构成重载,与形参列表的名字无关,主要提升了用户的体验感
private static void add(int a, int b) {
System.out.println(a + b);
}
static void add(int a, int b, int c) {
System.out.println(a + b + c);
}
方法的重写: 子类继承了父类以后,想要在不改变父类代码的情况下,实现功能的修改与拓展 * 重写遵循的规则:两同 两小 一大 * 一大: 子类方法的修饰符权限 >= 父类方法的修饰符权限 * 两同: 方法名与参数列表与父类方法保持一致 * 两小: 子类方法的返回值类型 <= 父类方法的返回值类型,注意:这里的<=说的是继承关系,不是值的大小 * 子类方法抛出的异常类型 <= 父类方法抛出的异常类型
父类:
public class FatherClass {
public FatherClass() {
System.out.println("父类无参数构造4");
}
void eat(){
System.out.println("父类方法:吃饭");;
}
void play(){
System.out.println("父类玩耍");
}
//代码块
static {
System.out.println("父类静态代码块1");
}
{
System.out.println("父类代码块3");
}
}
子类
public class SonClass extends FatherClass{
public SonClass() {
System.out.println("子类无参构造6");
super.eat();
eat();
}
{
System.out.println("子类代码块5");
}
static{
System.out.println("子类静态代码块2");
}
//方法的重载
@Override
void eat() {
System.out.println("子类吃面条");
}
public static void main(String[] args) {
new SonClass();
}
//顺序:父类静态代码块>子类静态代码块>父类代码块>父类构造函数>子类代码块>子类无参构造
}



