为什么喜欢构图而不是继承呢?每种方法都有哪些权衡取舍?什么时候应该选择继承而不是作文?
我正在读一本关于Java的书,它说你可以把全班宣布为final.我想不出任何我会用它的地方.
我刚接触编程,我想知道程序员是否真的在他们的程序中使用它.如果他们这样做,他们何时使用它,以便我能更好地理解它并知道何时使用它.
如果Java是面向对象的,并且你声明了一个类final,那么它是否会阻止具有对象特征的类的想法?
有类库B和C,都继承自A类.我有2个类扩展B&C,即MyB和MyC.
A
/ \
B C
/ \
MyB MyC
Run Code Online (Sandbox Code Playgroud)
MyB并MyC分享许多常见代码,它们只是略有不同.
我想摆脱重复的代码,我怎么能在java中做到这一点?在C++中,可以通过创建一个公共基类并将其中常见的所有内容放入其中,如下所示:
A
/ \
B C
\ /
MyBase
/ \
MyB MyC
Run Code Online (Sandbox Code Playgroud) 我有一个带有构造函数的Vector类
Vector(int dimension) // creates a vector of size dimension
Run Code Online (Sandbox Code Playgroud)
我有一个类Neuron,它扩展了Vector类
public class Neuron extends Vector {
public Neuron(int dimension, ... other parameters in here ...) {
super(dimension);
// other assignments below here ...
}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够做的是在Neuron类中为Vector指定另一个Vector的引用.有点像
public Neuron(Vector v, ... other parameters in here ...) {
super = v;
// other assignments below here ...
}
Run Code Online (Sandbox Code Playgroud)
当然,我不能这样做.有一些工作吗?即使我无法在Neuron类的构造函数中执行此操作,也许可以.
请看一下以下问题:赞成组合而不是继承
接受的回答者说:"它扩展了Hashtable,以便重用其方法,并避免使用委托重新实现其中的一些".我不确定回答者的意思是:使用委托重新实现其中的一些.回答者是什么意思?
我熟悉Delegates和Observer设计模式.
请有人解释一下java中的继承(IS-A&HAS)关系是什么
java ×4
inheritance ×2
aggregation ×1
composition ×1
final ×1
oop ×1
reference ×1
superclass ×1
vb.net ×1