方法的重写:
同一个类中,方法名相同,参数列表中的个数或者参数的种类不同才能构成重载,与形参列表的名字无关,主要提升了用户的体验感
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(); } //顺序:父类静态代码块>子类静态代码块>父类代码块>父类构造函数>子类代码块>子类无参构造 }
静态资源属于类资源,优先于对象加载,也就是说:类需要实例化创建对象,而静态资源属于类资源,调用类的时候就加载了,静态代码块属于类资源,只在类加载的时候加载一次。
本文详细介绍了Java中的方法重载和重写概念。方法重载发生在同一类中,通过不同的参数列表实现,而方法重写发生在子类继承父类时,保持方法名和参数列表一致,但实现不同。文章还提供了示例代码,展示了如何在子类中重写父类的方法,并讨论了重写时的规则,如访问权限、返回值类型和异常处理。
4808

被折叠的 条评论
为什么被折叠?



