继承和接口的问题

lfe 2003-09-29 10:49:41
class a
{
........
//已经实现了 func_a()
func_a()
........
}

class b
{
........
//已经实现了 func_b()
func_b()
........
}

class c要继承 class a 中的func_a,class b 中的 func_b。
需要怎么写?
是不是一定要这样:
public interface d
{
func_b()
}
class b implements d
{
........
}
class c extends a implements d
{
//再次实现func_b?
func_b()
.........
}

怎么样可以不用再次实现func_b()直接就可以用的?如果可以应该怎么写?



...全文
30 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
seaman0916 2003-09-29
  • 打赏
  • 举报
回复
我在这补充一点:

组合与继承之间的抉择,当两个类之间是"is-a(是一个)"的关系便以继承来表达,当两个类之间是"has-a(有一个)"的关系时则以组合的方式来表达!

OK !
ttlyzq 2003-09-29
  • 打赏
  • 举报
回复
如果你是想要实现多继承只有使用接口的机制,如果不想使用接口的话,可以使用楼上的包含的方法,但这样就没有了继承的味道。
还有一个办法是
class a
{
........
//已经实现了 func_a()
func_a()
........
}
class b extends a
{
........
//已经实现了 func_b()
func_b()
........

}
class c extends b
{
}
就行了
ratjohn 2003-09-29
  • 打赏
  • 举报
回复
有功夫读一下《java和编程思想》或者《java设计模式》,你会有不少收获的
ratjohn 2003-09-29
  • 打赏
  • 举报
回复
顺便说一句,你的a、b和c之间是什么关系?
如果不是类似 哺乳类-灵长类-人类 这样的关系,就不要随便用继承和接口
如果是类似 汽车=发动机+底盘+…… 这样的关系,就用包含吧
ratjohn 2003-09-29
  • 打赏
  • 举报
回复
用“包含”,在c中包含一个a的对象和一个b的对象
class c{
private a obja;
private b objb;
func_a(){
obja.func_a();
}
func_b(){
objb.func_b();
}
}

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧