Java中的方法重写

Java中的重写(Override)是指在子类中重新定义父类的方法,使其具有自己的实现逻辑。重写方法必须与被重写方法具有相同的名称、参数列表和返回值类型,并且访问修饰符不能比被重写方法更严格。通过重写方法,我们可以实现多态性(编译类型为父类,运行类型为子类),即在运行时根据对象的实际类型调用相应的方法。

以下是Java中重写方法的详细讲解:

访问修饰符 返回值类型 方法名 (参数列表) [throws 异常列表] {

    // 方法体

}

- 访问修饰符:重写方法的访问修饰符不能比被重写方法更严格,如被重写方法是public,则重写方法可以是public或protected。(也就是说子类重写父类的方法时,子类方法的访问修饰符要大于或等于父类的访问修饰符)

- 返回值类型:重写方法的返回值类型必须与被重写方法的返回值类型相同或为其子类

- 方法名和参数列表:重写方法的方法名和参数列表必须与被重写方法相同。

- throws 异常列表:重写方法可以抛出与被重写方法相同的异常,或者不抛出任何异常或者是其子类的异常

以下是一个简单的例子,展示了如何在子类中重写父类的方法:

class Animal {

    public void move() {

        System.out.println("动物可以移动");

    }

}



class Dog extends Animal {

    public void move() {

        System.out.println("狗可以跑和走");

    }

}



public class Test {

    public static void main(String args[]) {

        Animal a = new Animal();   // Animal 对象

        Animal b = new Dog();   // Dog 对象



        a.move();    // 执行 Animal 类的方法

        b.move();   // 执行 Dog 类的方法

    }

}

在上面的例子中,我们定义了一个Animal类和一个Dog类,其中Dog类继承了Animal类。Animal类中定义了一个名为move的方法,而Dog类覆盖了这个方法,并定义了自己的版本。在Test类的main方法中,我们实例化了一个Animal对象和一个Dog对象,并分别调用它们的move方法。

当执行a.move()时,由于a是一个Animal对象,因此会执行Animal类的move方法,输出"动物可以移动";而当执行b.move()时,由于b是一个Dog对象,并且Dog类重写了move方法,因此会执行Dog类的move方法,输出"狗可以跑和走"。

需要注意的是,在重写方法时,访问修饰符不能比被重写方法更严格,如被重写方法是public,则重写方法可以是public或protected;返回值类型必须与被重写方法相同或为其子类;方法名和参数列表必须与被重写方法相同。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值