Java 接口变量与实现类

Java 接口变量与实现类,java,Java,接口变量可以从实现类中分配一个变量吗?不,不能 接口中声明的每个字段都是隐式公共静态final,即常量。因此,您不能从实现类向它分配任何内容 另见: 不,它不能 接口中声明的每个字段都是隐式公共静态final,即常量。因此,您不能从实现类向它分配任何内容 另见: 如果您需要一个接口来指定获取/设置变量的能力,请在接口中适当地包含getVariable/setVariable方法,以便需要接口实现者来实现它们 如果需要指定获取/设置变量能力的接口,请在接口中适当地包含getVariable/set

接口变量可以从实现类中分配一个变量吗?

不,不能

接口中声明的每个字段都是隐式公共静态final,即常量。因此,您不能从实现类向它分配任何内容

另见: 不,它不能

接口中声明的每个字段都是隐式公共静态final,即常量。因此,您不能从实现类向它分配任何内容

另见:
如果您需要一个接口来指定获取/设置变量的能力,请在接口中适当地包含getVariable/setVariable方法,以便需要接口实现者来实现它们

如果需要指定获取/设置变量能力的接口,请在接口中适当地包含getVariable/setVariable方法,以便需要接口实现者来实现它们

如果你问以下是否有效,那么答案是否定的:

public interface Foo {
    public int thing = 21;
    ...
}

public class FooImpl implements Foo {
    public void someMethod() {
        thing = 42;  // compilation error here
    }
}
原因是Foo.thing不是一个变量。它是隐含的最终和静态的;i、 它是一个静态常数

如果希望Foo接口的实例实现一个变量,那么接口应该定义getter和setter方法,这些方法应该在实现类中实现,例如,在类声明的私有实例变量中保存相应的状态

另一方面,如果您询问以下各项是否有效,那么答案是肯定的:

public interface Foo {
    ...
}

public class FooImpl implements Foo {
    ...
}

public class Test {
    FooImpl fi = ...;
    Foo f = fi;  // OK.
}

如果您询问以下各项是否有效,那么答案是否定的:

public interface Foo {
    public int thing = 21;
    ...
}

public class FooImpl implements Foo {
    public void someMethod() {
        thing = 42;  // compilation error here
    }
}
原因是Foo.thing不是一个变量。它是隐含的最终和静态的;i、 它是一个静态常数

如果希望Foo接口的实例实现一个变量,那么接口应该定义getter和setter方法,这些方法应该在实现类中实现,例如,在类声明的私有实例变量中保存相应的状态

另一方面,如果您询问以下各项是否有效,那么答案是肯定的:

public interface Foo {
    ...
}

public class FooImpl implements Foo {
    ...
}

public class Test {
    FooImpl fi = ...;
    Foo f = fi;  // OK.
}
接口:系统需求服务

在接口中,变量默认由公共、静态、最终访问修饰符赋值。因为:

public:有时接口可能会放在其他包中。所以它需要从项目中的任何地方访问变量

静态:这样不完整的类不能创建对象。所以在项目中,我们需要访问不带对象的变量,这样我们就可以在

interface_filename.variable_name
最后:假设一个接口由多个类实现,所有类都尝试访问和更新接口变量。因此,它会导致数据变化的不一致性,并影响其他所有类。所以它需要用final声明访问修饰符

由于接口变量的这种设计,其实现类无法分配或更新变量的值。它只能访问接口变量。

接口:系统需求服务

在接口中,变量默认由公共、静态、最终访问修饰符赋值。因为:

public:有时接口可能会放在其他包中。所以它需要从项目中的任何地方访问变量

静态:这样不完整的类不能创建对象。所以在项目中,我们需要访问不带对象的变量,这样我们就可以在

interface_filename.variable_name
最后:假设一个接口由多个类实现,所有类都尝试访问和更新接口变量。因此,它会导致数据变化的不一致性,并影响其他所有类。所以它需要用final声明访问修饰符


由于接口变量的这种设计,其实现类无法分配或更新变量的值。它只能访问接口变量。

您到底想知道什么?详细说明。你到底想知道什么?复杂的