像忘了谁sq 2019-08-12 17:30 采纳率: 0%
浏览 247
已采纳

问一个面向对象编程问题,我有几个类它们有许多共同字段但是不需要向上转型,那么我需不需要添加一个父类?

问一个面向对象编程问题,我有几个类它们有许多共同字段但是不需要向上转型,那么我需不需要添加一个父类?
class A{
private int filed1;//
private int filed2;//
private int filed3;//

 private int filed4;//

}

class B{
private int filed1;//
private int filed2;//
private int filed3;//

 private int filed5;//
 private int filed6;//
 private int filed7;//

}

  • 写回答

3条回答 默认 最新

  • 蓝色雨点 2019-08-12 21:53
    关注

    需不需要抽取父类, 这个得看具体情况!

    • 抽象层次越高, 其实际理解越困难, 代码量相对减少;
    • 同理反过来, 抽象层次越低, 理解越容易但代码量越多;

    另一方面, 有共同属性也不是说一定要抽取父类. 这要看他们在业务中是不是真的存在 is...a 的关系.
    再者, is...a 关系总是能转换为 has...a, 由于Java单根继承特性, 除非有足够的理由(要使用多态)使用继承, 否则请更多考虑使用包含.


    打个比方:
    一栋100层的高楼和一栋一层的平房都是楼房,
    但建造100层的高楼就必须要合理的设计(主体框架, 承重结构, 重力扭矩等等)...
    而这些设计在修建一层的平方时就忽略不计了, 如果硬要用这些设计反而使得工期, 人力成本增加, 得不偿失!

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?