📅  最后修改于: 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!");
}
}
在上面的示例中,Dog
和 Cat
子类都继承了 Animal
抽象类,而且它们都实现了 makeSound()
方法。同时,它们都可以使用 eat()
方法,而不需要重复实现它。
总结:
在抽象类中添加非抽象方法是合法的,它可以帮助我们在一个抽象类中组合抽象方法和具体方法,提供更好的代码复用性和可扩展性。同时,子类也可以继承和复用这些非抽象方法。