重写方法就是重写抽象方法?
时间: 2023-11-04 08:31:27 浏览: 41
重写方法和重写抽象方法是不同的概念。
重写方法是指在子类中重新定义与父类同名、同参数的非抽象方法,以实现子类自己的功能。
重写抽象方法指在子类中实现父类的抽象方法,以使子类变为具体类。抽象方法没有具体的实现,必须在子类中重写实现才能使用。
因此,重写方法可以是非抽象方法的重写,也可以是抽象方法的实现;而重写抽象方法只能是抽象方法的实现。
相关问题
什么情况下使用重写方法和重写抽象方法
重写方法和重写抽象方法都是针对继承关系的。当一个类继承另一个类时,子类可以重写父类中的方法和抽象方法。具体情况如下:
1. 重写方法:当子类需要修改父类已有的方法实现时,可以重写该方法。子类继承父类的方法,但是可以根据自己的需要重新实现该方法。重写方法的目的是为了满足子类自己的需求,使得子类更加适合实际应用。
2. 重写抽象方法:当父类中有抽象方法时,子类必须实现该抽象方法。抽象方法没有具体的实现,只有方法声明,因此子类必须提供具体的实现。重写抽象方法的目的是为了使得子类具有更加具体的特征,使得子类能够独立存在。
总之,重写方法和重写抽象方法都是为了满足子类的需求,使得子类更加适合实际应用。重写方法是在已有方法的基础上进行修改,而重写抽象方法是必须进行实现。
抽象类方法子类必须重写示例
当一个类中有一个或多个抽象方法时,这个类就被称为抽象类。抽象方法是没有实现的方法,它只有方法声明,没有方法体。子类必须实现(重写)父类中的抽象方法,否则子类也必须定义为抽象类。下面是一个示例代码:
```
abstract class Animal {
public abstract void makeSound();
}
class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Woof");
}
}
public class Main {
public static void main(String[] args) {
Animal animal = new Dog();
animal.makeSound();
}
}
```
在上面的代码中,Animal类是一个抽象类,并且有一个抽象方法makeSound()。Dog类继承了Animal类并实现了makeSound()方法。在Main类的main方法中,我们创建了一个Animal对象animal,但是animal的实际类型是Dog。当我们调用animal的makeSound()方法时,实际上调用了Dog类的makeSound()方法,输出了"Woof"。