日期:2014-05-20  浏览次数:20667 次

关于类关系问题,恳求答案
问题如下

我有一个已有的类A。现在,我想写一个类B,B跟A的功能是一摸一样,但函数的名字就不同。

好像在java中,是不能覆盖了父类的公共函数的吧,于是,我在B中实例了一个A的对象。

我这方法是否高效呢?而且是否另外有一个高效又方便的继承或什么方法,可以不用再重写B

谢谢    


------解决方案--------------------
好像在java中,是不能覆盖了父类的公共函数的

当然可以覆盖

功能差不多,你就没有必要多写B类了
------解决方案--------------------
你所提到的在B中有一个A的实例,其实就是代理模式
class A
{
void a(){}
void b(){}
}
class B
{
A a;
void a(){a.a();}//这里的方法名也可以不用和A的一致
void b(){a.b();}

}
------解决方案--------------------
是说的这个意思吗?
public class A {

void aAdd() {
}
void aSub() {
}
}

class B extends A{
void bAdd(){
super.aAdd();
}
void bSub(){
super.aSub();
}
}
------解决方案--------------------
up
------解决方案--------------------
既然功能是一摸一样 就不要弄出个B来
------解决方案--------------------
为了以后程序重构,用代理模式是比较好地,业务是要和代码区别开来的。
有很多程序员在写代码中,写的代码总是只看到当前,后期业务扩展就不能用了
------解决方案--------------------
不要继承那么多
就用代理就行了
public class A {

void aAdd() {
}
void aSub() {
}
}

class B{
A a;
void bAdd(){
a.aAdd();
}
void bSub(){
a.aSub();
}
}

------解决方案--------------------
子类的方法不一定比父类多。有时子类是不能继承父类的方法的
------解决方案--------------------
呵呵,public的可以继承吧!
------解决方案--------------------
学习到了不少~
呵呵~