这种想法有些怪异,等你写代码多了,见过大型软件就会体会到,控制复杂性并节省维护和扩展带来的未来成本远远比少写几行代码重要的多,基本的原则中有一条就是对强制的约束条件就必须强制确保贯彻执行而不要给其它使用它的人留下任何可能的因为偷懒或其它省事而给出错或给将来带来更高成本的机会。千万不要为了省写几行代码而去改动一个正确的设计。打字的时间是不需要太花脑筋的,而如果出错了你去调试就会轻松花去你一天甚至一个星期的时间。谁划算?对于你认为容易出错的情况,我觉得你可以再添加一个 Dog(int x, int y) { super(x,y);} ,如果真是该由调用者决定如何构造 Dog 和 Animal,那就把这个调用构造方法的机会留出调用者,而是 Dog 类自己。
纠正:那就把这个调用构造方法的机会留给调用者,而不是 Dog 类自己。 补充:如果 x,y 是必须的,就不应该给 Animal 添加一个无参构造方法,如果这样做了就走错了方向。只有当应该由调用者决定如何构造Animal的时候才给它添加。
补充:如果 x,y 是必须的,就不应该给 Animal 添加一个无参构造方法,如果这样做了就走错了方向。只有当应该由调用者决定如何构造Animal的时候才给它添加。