【发布时间】:2015-03-05 09:19:23
【问题描述】:
我有这个抽象基类,它的每个子类都应该有一个特定的强制功能,但略有不同。这可以使用抽象类还是我应该为此使用接口?
我将使用这样的结构
public abstract class Animal
{
//Mandatory method
Public void sound()
{
}
}
public class Cat extends Animal
{
public void sound()
{
System.out.println("Miauw");
}
}
public class Dog extends Animal
{
public void sound()
{
System.out.println("Woof");
}
}
//I will put all these child objects in a List<Animal> and need to call these methods.
for (Animal a : animalList)
{
a.sound();
}
如何处理这种结构?我必须补充一点,我正在使用一个抽象类,因为有很多相同的方法需要在子类之间共享。只是其中一些方法需要彼此不同,但必须从基类中访问。
【问题讨论】:
-
您使用哪个 Java 版本?
-
您的访问修饰符对 Java 无效。
-
一般提示总是使用接口,只有在不同子类的某些方法实现相同时才使用抽象类
-
是的,我只是把它写在文本框里作为一个简单的例子。
标签: java oop interface abstraction