首页后端开发JAVAjava重写和重定义

java重写和重定义

时间2023-11-30 04:29:03发布访客分类JAVA浏览597
导读:在Java中,当子类继承一个父类时,它可以重写父类的方法或者重定义一个新方法。这两种方法看起来很相似,但是它们有着不同的作用。重写是指子类创建一个与父类中同名、同参数列表的方法,并且需要保持返回类型和访问修饰符相同。重写方法的目的是为了更改...

在Java中,当子类继承一个父类时,它可以重写父类的方法或者重定义一个新方法。这两种方法看起来很相似,但是它们有着不同的作用。

重写是指子类创建一个与父类中同名、同参数列表的方法,并且需要保持返回类型和访问修饰符相同。重写方法的目的是为了更改父类所提供的实现或者添加子类特定的实现。子类的重写方法将会覆盖掉原有的父类方法,当调用该方法时,程序将会执行子类中的代码。

public class Animal {
public void eat() {
    System.out.println("Animal is eating");
}
}
public class Cat extends Animal {
@Overridepublic void eat() {
    System.out.println("Cat is eating");
}
}
public class Main {
public static void main(String[] args) {
    Animal animal = new Animal();
    Cat cat = new Cat();
    animal.eat();
     //-- Output: Animal is eatingcat.eat();
    //-- Output: Cat is eating}
}

上述代码展示了子类Cat重写了父类Animal的eat()方法。当Animal对象调用eat()方法时,输出的结果为“Animal is eating”,当Cat对象调用eat()方法时,输出的结果为“Cat is eating”。

相比之下,重定义是指子类创建了一个与父类中同名、但是参数列表不同的方法。重定义方法的目的是为了添加一个全新的方法。这个方法会被子类调用,但是它不会覆盖父类同名的方法。这种方法并不会涉及到父类中方法的重写。

public class Dog extends Animal {
public void eat(String food) {
    System.out.println("Dog is eating " + food);
}
}
public class Main {
public static void main(String[] args) {
    Dog dog = new Dog();
    dog.eat();
              //-- 输出: Animal is eatingdog.eat("meat");
    //-- 输出: Dog is eating meat}
}
    

在上述代码中,子类Dog重定义了父类Animal的eat()方法,并且添加了一个String类型的参数。当子类对象调用eat()方法时,输出的结果是“Animal is eating”,当调用eat("meat")方法时,输出的结果是“Dog is eating meat”。

总的来说,Java中的重写和重定义都是为了让子类更加灵活地使用父类的方法。但是要注意它们的区别,以便在使用时不会出现不必要的错误。

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


若转载请注明出处: java重写和重定义
本文地址: https://pptw.com/jishu/561392.html
AJAX实现学院专业班级联动效果 java里面的成员和对象

游客 回复需填写必要信息