我可以拥有一个空的Java类吗?

时间:2015-01-22 13:41:01

标签: java class abstract

我正在创建一个基于网格的游戏。

我需要实现一组在网格内随机定位的障碍。 我创建了一个抽象类ALifeForm,它包含网格中每个项目的常用方法。显然,抽象类无法初始化,因此我打算创建一个新的类AObstacle,它将扩展ALifeForm

唯一的问题是,我的AObstacle课程并不专业。它需要的所有方法都在ALifeForm之内。

我可以有一个空课吗? 这是不好的编程习惯吗?如果是这样,我可以实现什么呢?

2 个答案:

答案 0 :(得分:7)

当然......

class AObstacle { }

(加上你正在使用的任何继承模型。)没有什么能阻止你这样做。

请记住,并不是您正在定义的事情。 类型是。该类只是用于描述类型的语言/语法结构。如果所描述的类型除了继承模型之外没有任何属性或操作,那么就没有别的东西可以添加到它。

虽然你 添加了一件事。你给它一个名字。它听起来并不多,但定义具有特定名称的语义概念(特别是在静态类型环境中)非常重要。您的类型现在具有除系统中其他类型之外的身份。如果以后添加了某些内容,则可以在不进行重构和更改的情况下添加它们。

答案 1 :(得分:0)

要做到这一点,你不需要有一个抽象类和一个扩展它的类,或者一个空类(也可能)。

第一种方式:

你只需要实现两个类:包含你需要使用的方法和变量的类,以及包含你的第一个类的实例的第二个calss:

public class A{
  public void firstMethod(){
    //do your stuff here
  }
....
}

public class B{
  public static void main(String[] args) {
   A a=new A(); //instantiate your class here 
   a.firstMethod();// then just use its methods
  }
}
  

因为如果你实现了一个扩展抽象类的类,它应该实现它的所有方法。

第二种方式:

  • 或者如果你想让你的第二堂课专业化,你可以:

你的第一堂课不应该是抽象的,第二堂课可以扩展它并使用它的所有方法,并有其特定的方法