首页后端开发JAVAJava重写和方法覆盖

Java重写和方法覆盖

时间2023-11-30 04:11:03发布访客分类JAVA浏览717
导读:在Java中,重写(Override)和方法覆盖(Method Overriding)都是面向对象编程的重要概念。当子类从父类继承某个方法,子类可以在继承的方法中重新定义该方法,这就是方法重写或方法覆盖。重写的方法与原方法具有相同的名称、参...

在Java中,重写(Override)和方法覆盖(Method Overriding)都是面向对象编程的重要概念。当子类从父类继承某个方法,子类可以在继承的方法中重新定义该方法,这就是方法重写或方法覆盖。重写的方法与原方法具有相同的名称、参数列表和返回值类型,但实现有所不同。

// 父类public class Animal {
public void jump() {
    System.out.println("Animal: I can jump.");
}
}
// 子类public class Cat extends Animal {
public void jump() {
    System.out.println("Cat: I can jump higher!");
}
}

在上述代码中,子类Cat继承了父类Animal的jump方法,并对其进行了重写。当Cat类的实例调用jump方法时,会输出“Cat: I can jump higher!”而不是父类中的“Animal: I can jump.”,这就是方法覆盖的效果。

需要注意的是,在重写方法时,方法的访问修饰符不能比父类中的方法更严格,即如果父类中的方法是public,则子类中重写的方法也必须是public或protected,不能是private,否则会出现编译错误。

// 父类public class Animal {
protected void breathe() {
    System.out.println("Animal: I can breathe.");
}
}
// 子类public class Cat extends Animal {
public void breathe() {
     // 编译错误:Attempting to assign weaker access privileges;
     was protectedSystem.out.println("Cat: I can breathe.");
}
}
    

以上代码中,父类Animal的breathe方法是protected的,子类Cat中重写的方法却是public的,因此会出现编译错误。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Java重写和方法覆盖
本文地址: https://pptw.com/jishu/561374.html
java重写与重载详解和区别 ajax实现文件上传下载

游客 回复需填写必要信息