java中有抽象变量吗?
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/3562926/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Is there any abstract variables in java?
提问by Vinoth Kumar
Can variables be abstract
in Java? Do constructor support abstract
variables? I am not sure but I think the constructor supports static variables. Please clarify my doubt.
变量可以abstract
在Java中吗?构造函数是否支持abstract
变量?我不确定,但我认为构造函数支持静态变量。请澄清我的疑问。
回答by naikus
In java only classes and methods can be abstract. Variable declarations cannot. However you can have variable declarations whose types are abstract. See example:
在 Java 中,只有类和方法可以是抽象的。变量声明不能。但是,您可以使用抽象类型的变量声明。见示例:
public abstract class MyClass { // allowed
public abstract myMethod(); // allowed
public MyClass instance; // allowed
public abstract MyClass instance; // NOT ALLOWED!!
}
回答by Andreas Dolk
The language specifacation lists 7 types of variables:
语言规范列出了 7 种类型的变量:
- class variables- declared as static within a class declaration
- instance variables- declared within a class declaration without using the static keyword
- array components- like
i[2]
when we create an array likeint[] i= new int[5]
- method parameters- name argument values passed to a method
- constructor parameters- name argument values passed to a constructor
- exception-handler parameter- created each time an exception is caught
- local variables- declared in a block (
{ }
) or for statement
- 类变量- 在类声明中声明为静态
- 实例变量- 在类声明中声明,不使用 static 关键字
- 数组组件- 就像
i[2]
我们创建一个数组一样int[] i= new int[5]
- 方法参数- 传递给方法的名称参数值
- 构造函数参数- 传递给构造函数的名称参数值
- 异常处理程序参数- 每次捕获异常时创建
- 局部变量- 在块 (
{ }
) 或 for 语句中声明
You can use all variable types (except #4) in a constructor:
您可以在构造函数中使用所有变量类型(#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
}
}
The abstract
keyword is not allowed for variable declaration.
该abstract
关键字是不允许的变量声明。
回答by J. Lily
abstract is a non-access modifier in java applicable for classes, methods but not variables. It is used to achieve abstraction which is one of the pillar of Object Oriented Programming.
abstract 是 Java 中的非访问修饰符,适用于类、方法但不适用于变量。它用于实现抽象,这是面向对象编程的支柱之一。