理解类

use*_*006 3 java

我是编程新手,对课程有一些疑问。

我将以卡雷尔为例:

public class Karel extends robot{
   ....

}
Run Code Online (Sandbox Code Playgroud)

然后我扩展卡雷尔:

public class SuperKarel extends Karel{
   ....

}
Run Code Online (Sandbox Code Playgroud)

但后来我想组织一些方法组:

public class KarelJumps extends SuperKarel {
    ....

}

public class KarelColor extends SuperKarel {
    ....

}
Run Code Online (Sandbox Code Playgroud)

不过,如果我想使卡雷尔跳我要创建的实例 KarelJumps相当的SuperKarel。但是因为KarelJumps是一个不同的对象,所以KarelColor 我不能使用它的任何方法。

那么我是否将所有的KarelJumpsKarelColor 方法都放在里面SuperKarel?难道我只制作一个大对象吗?

Chr*_*isb 5

扩展类的最有用的原因是,您可以在新对象中使用底层类的功能,然后添加新类型独有的行为和特征。如果没有令人信服的理由这样做,而且经常没有,那就不要这样做。不要让你的设计过于复杂,只是为了尝试利用多态和继承。

您希望使用这些技术使您的应用程序不那么复杂而不是更复杂。对于一个新的程序员,我建议你拿到《代码完成》这本书,让它成为你的圣经一段时间。你不会从它本身学习一门语言,但你会了解事情应该如何做以及为什么这样做。