你能说出一个抽象类对象吗?

时间:2013-12-06 15:10:53

标签: java

考虑到一切都是面向对象的,所以名称必须描述对象及其内容,我有一个子类继承的抽象类。这些都是屏幕上的物体(它是游戏),即玩家和重量(梯形重量)。我现在将它命名为Character但它似乎不合适,因为权重不是字符本身,它只从字符继承属性。

我可以在不破坏约定的情况下将此类称为“对象”吗? - 有人能想出一个更恰当的名字吗?

3 个答案:

答案 0 :(得分:8)

从技术上讲,你可以 - 但这是一个非常非常糟糕的主意,所以不要。

更长的解释:Java中的Object类是java.lang.Object - 因此没有技术原因可以在另一个包中创建另一个Object类,就像你可以在另一个包中创建另一个String类一样。 (实际上,从技术上讲,你甚至可以创建自己的java.lang.Object,但我甚至不会去那里!)

然而:

  

我可以在没有破坏惯例的情况下将此类称为“对象”吗?

不破坏约定?没有丝毫。你永远不应该在其他地方复制这些常用的类名,尤其是java.lang中的那些。它被认为是非常糟糕的代码设计。

就更好的名称而言,ActorSprite可能是两个不错的选择。

答案 1 :(得分:3)

Java的Object类是java.lang包的一部分,它会自动为每个类文件导入。如果您为自己的班级Object命名并忘记在其他课程中明确import,那么您会遇到问题,认为您正在使用com.custom.Object(您的班级),但实际上正在使用{{1 JDK的。

使用更具描述性的名称java.lang.Object

答案 2 :(得分:0)

是的,你可以。名称旁边的类具有包的路径。

 package org.stackoverflow

 public class Object {

 }

默认情况下,java.lang是禁止的包名,因此您无法声明

package java.lang

public class Object {

}

班级名称在全世界的范围内不一定是唯一的。使用类路径,您可以覆盖类的JVM定义。