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

问题描述 投票:12回答:3

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

java variables abstract
3个回答
24
投票

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

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

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

11
投票

语言规范列出了7种类型的变量:

  1. [class variables-在类声明中声明为静态
  2. instance variables-在类声明中声明,而不使用static关键字
  3. 数组组件-当我们创建像i[2]]的数组时像int[] i= new int[5]
  4. 方法参数
  5. -传递给方法的名称参数值
  6. 构造函数参数
  7. -传递给构造函数的名称参数值
  8. exception-handler参数
  9. -每次捕获异常时创建
  10. 局部变量
  11. -在块({ })或声明中声明

    您可以在构造函数中使用所有变量类型(#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关键字不允许用于变量声明。


0
投票

抽象是Java中的不可访问修饰符,适用于类,方法,但不适用于变量。它用于实现抽象,它是面向对象编程的支柱之一。

© www.soinside.com 2019 - 2024. All rights reserved.