Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/397.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 抽象类扩展具体类_Java_Abstract Class_Extend - Fatal编程技术网

Java 抽象类扩展具体类

Java 抽象类扩展具体类,java,abstract-class,extend,Java,Abstract Class,Extend,我有一个抽象类,它扩展了一个具体类。但我不知道如何使用它。我应该如何用抽象类中的方法实例化具体类,就像我通常用其他方法那样?或者有其他方法来实例化类吗?抽象类总是扩展具体类(java.lang.Object)。因此,它的工作原理与往常一样。如果您想实例化它,您必须使用这些抽象方法的具体实现对其进行子类化,并通过具体类对其进行实例化 就像你一直做的那样。这不是特例。例如,让我们假设我们有一个扩展fooFather类的foo抽象类 public abstract class Foo extends

我有一个抽象类,它扩展了一个具体类。但我不知道如何使用它。我应该如何用抽象类中的方法实例化具体类,就像我通常用其他方法那样?或者有其他方法来实例化类吗?

抽象类总是扩展具体类(
java.lang.Object
)。因此,它的工作原理与往常一样。如果您想实例化它,您必须使用这些抽象方法的具体实现对其进行子类化,并通过具体类对其进行实例化


就像你一直做的那样。这不是特例。

例如,让我们假设我们有一个扩展fooFather类的foo抽象类

public abstract class Foo extends FooFather{



}
然后我们创建一个子类来扩展Foo,如下所示:

public class Foo2 extends Foo{



}

And initialize it like this

Foo aFoo=new Foo2();

您可以有一种实现。我的意思是: 假设你有一门动物课。
Animal
类有一个方法名
jump()
,然后是另一个扩展
哺乳动物的类。哺乳动物类是抽象的。我的理解是,您希望任何类扩展
哺乳动物
都必须重写
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();
    }
}

如果任何类试图重写
哺乳动物
类,它们必须重写
跳跃哺乳动物()
方法,因此在
跳跃()
方法中运行。

添加一些代码以便我们可以帮助您我也不知道如何使用您想象的代码。您只需要再次扩展它。重复: