2015-11-12 215 views
-1

我有延伸的具体类的抽象类。但我对如何使用它感到困惑。我想如何用抽象类中的方法来实例化具体类,就像我通常会采取其他方法一样?或者有另一种实例化类的方法吗?抽象类扩展的具体类

+0

添加一些代码,以便我们可以帮助您 – cssGEEK

+2

我很困惑如何使用您的想象代码以及 – redFIVE

+0

你只需要再次扩展。 –

回答

8

一个抽象类总是延伸的具体类(java.lang.Object至少是)。所以它的工作原理与往常一样。如果你想实例化它,你必须用这些抽象方法的具体实现来对它进行子类化,并通过具体的类来实例化它。

像往常一样做的。这不是特例。

0

例如,假设我们已经扩展fooFather类foo的抽象类。

public abstract class Foo extends FooFather{ 



} 

然后我们创建一个扩展美孚这样的一个子类:

public class Foo2 extends Foo{ 



} 

And initialize it like this 

Foo aFoo=new Foo2(); 
1

你可以有一个类型的实现。我的意思是这样的: 假设你有一个动物类。该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()方法中。