我有一个扩展具体类的抽象类。但我对如何使用它感到困惑。我怎么想用抽象类中的方法实例化具体类,就像我通常会反过来一样?或者是否有另一种实例化类的方法?
答案 0 :(得分:12)
抽象类总是扩展一个具体的类(至少java.lang.Object
)。所以它的工作原理与以往一样。如果要实例化它,则必须使用这些抽象方法的具体实现对其进行子类化,并通过具体类对其进行实例化。
就像你一直这样。这不是一个特例。
答案 1 :(得分:3)
您可以进行某种实施。我的意思是:
假设你有一个Animal类。 Animal
类的方法名称为jump()
,然后是另一个扩展Mammal
的类。 Mammal
类是抽象的。我的理解是,您希望任何类扩展Mammal
以覆盖jump()
方法。这就是我认为是你的问题。为了实现这一点,我想创建一个抽象方法并在原始方法中调用它。我的意思是这样的:
public class Animal
{
public final String name;
public final int weight;
public Animal(String name, int weight)
{
this.name = name;
this.weight = weight;
}
public void jump()
{
System.out.println(name + " Jumped");
}
}
然后你有哺乳动物课:
public abstract class Mammal extends Animal
{
public Mammal(String name, int weight)
{
super(name, weight);
}
public abstract void jumpMammal();
@Override
public final void jump()
{
jumpMammal();
}
}
如果任何类尝试覆盖Mammal
类,则需要覆盖jumpMammal()
方法,因此以jump()
方法运行。
答案 2 :(得分:1)
public abstract class Foo extends FooFather{
}
然后我们创建一个扩展Foo的子类:
public class Foo2 extends Foo{
}
And initialize it like this
Foo aFoo=new Foo2();