如何使一个类只能扩展而不能直接在java中使用?

时间:2017-03-13 03:48:09

标签: java

如何使一个类只能扩展,不能直接使用,并且每个子类都有不同的方法实现?我考虑过接口但是接口并没有强制我初始化变量只是让我实现我想要的东西,这些方法要求每个子类都要初始化它们扩展的一些特定变量。

2 个答案:

答案 0 :(得分:7)

添加abstract修饰符。那是

public abstract class MyClass { ... }

答案 1 :(得分:2)

正如他所说的你是一个抽象类,抽象类就像一个模板:

这是甲骨文所说的:

  

抽象类与接口相比

抽象类与接口类似。您无法实例化它们,并且它们可能包含使用或不使用实现声明的混合方法。但是,对于抽象类,您可以声明非静态和最终的字段,并定义public,protected和private具体方法。使用接口,所有字段都自动为public,static和final,并且您声明或定义的所有方法(作为默认方法)都是公共的。此外,您只能扩展一个类,无论它是否是抽象的,而您可以实现任意数量的接口。

您应该使用哪些,抽象类或接口?

int arr[10]; // Change it to the number of nodes in your tree
int index = 0;
void store(struct node *root)
{

    if (root != NULL)
    {

        printf("%d \n", root->key);
        arr[index++] = root->key;
        store(root->left);
        store(root->right);
    }
}

以下是更多信息

https://docs.oracle.com/javase/tutorial/java/IandI/abstract.html

你可以像他说的那样使用

抽象类名称{}