Java中是否有任何抽象变量?

2022-09-04 06:04:55

变量可以在Java中吗?构造函数是否支持变量?我不确定,但我认为构造函数支持静态变量。请澄清我的疑问。abstractabstract


答案 1

在java中,只有类和方法可以是抽象的。变量声明不能。但是,您可以具有类型为抽象的变量声明。请参阅示例:

public abstract class MyClass { // allowed
   public abstract myMethod(); // allowed
   public MyClass instance; // allowed

   public abstract MyClass instance; // NOT ALLOWED!!
}

答案 2

语言形态列出了7种类型的变量:

  1. 类变量 - 在类声明中声明为静态
  2. 实例变量 - 在类声明中声明,不使用 static 关键字
  3. 数组组件 - 就像我们创建数组一样i[2]int[] i= new int[5]
  4. 方法参数 - 传递给方法的名称参数值
  5. 构造函数参数 - 传递给构造函数的名称参数值
  6. 异常处理程序参数 - 每次捕获异常时创建
  7. 局部变量 - 在块 () 或 for 语句中声明{ }

您可以在构造函数中使用所有变量类型(#4 除外):

class Demo {
   static int demo1 = 0;               // class variable
   int[] demo2 = new int[5];           // instance variable
   Demo(int demo3) {                   // constructor parameter
     try {
       int demo4 =                     // local variable
                   demo2[2];           // array component
     } catch(RuntimeException demo5) { // exception-handler parameter
     }
     demo2 = new int[]{Demo.demo1};    // using class and instance variable
                                       // in a constructor
   }
   int method(int demo6) {             // method parameter
   }
}

变量声明不允许使用关键字。abstract