📜  我们可以在抽象类中添加非抽象方法吗? (1)

📅  最后修改于: 2023-12-03 15:25:42.237000             🧑  作者: Mango

在抽象类中添加非抽象方法

在 Java 中,抽象类是一种不能直接使用的类,它用于被继承和派生出新的类。抽象类的特点是它可以包含抽象方法和非抽象方法,而且子类必须实现其抽象方法。

那么,我们可以在抽象类中添加非抽象方法吗?

答案是肯定的,我们可以在抽象类中添加非抽象方法。这种方法也被称为具体方法,因为它具有实现代码。

下面是一个抽象类的示例,其中包含一个抽象方法和一个非抽象方法:

public abstract class Animal{
    public abstract void makeSound();

    public void eat(){
        System.out.println("I am eating.");
    }
}

在上面的示例中,makeSound() 方法是抽象方法,它必须在子类中被实现,而 eat() 方法是非抽象方法,它已经具有实现。

在子类中,您可以使用以下方式来实现 makeSound() 方法和继承 eat() 方法:

public class Dog extends Animal{

    public void makeSound(){
        System.out.println("Woof!");
    }
}

public class Cat extends Animal{

    public void makeSound(){
        System.out.println("Meow!");
    }
}

在上面的示例中,DogCat 子类都继承了 Animal 抽象类,而且它们都实现了 makeSound() 方法。同时,它们都可以使用 eat() 方法,而不需要重复实现它。

总结:

在抽象类中添加非抽象方法是合法的,它可以帮助我们在一个抽象类中组合抽象方法和具体方法,提供更好的代码复用性和可扩展性。同时,子类也可以继承和复用这些非抽象方法。