【发布时间】:2014-09-30 10:17:00
【问题描述】:
如果我有一个接口汽车,它要在称为 BMW、AUDI 等的各种类上实现。现在我希望它们都有一个字符串实例颜色,它们的颜色应该存储在其中。因为它们都可以有不同的颜色,所以我不能在接口中将变量定义为强制最终的,因此它的值不会根据类的需要而改变。那么有什么方法可以确保每个班级都使用颜色。
另外请告诉我为什么接口中的变量总是最终的,即如果它们不是最终变量会有什么问题。 我已经回答了以下问题,但没有一个令人满意 Why are interface variables static and final by default?
还有其他几个。
【问题讨论】:
-
Interface 表示合约需要遵循谁在执行它。所以它有我们需要实现的抽象方法。和 final 变量,因为该值应该在实现接口的子类中使用。子类不应该改变超出合同的价值
-
你已经经历了最好的解释之一,但不知道你怎么不满意。
-
对于为每个实现类定义单独的颜色变量并通过设置器设置它们是否有任何限制。
-
@Imaran 因为到处都描述了 final 关键字的功能,但我想知道如果接口中的变量不是最终的,为什么我们不能使用通用变量?
-
因为那将是实现而不是接口,所以你的设计让我担心。我认为你想要一个带有颜色的抽象类,而不是一个接口。
标签: java oop inheritance