第1个回答 2013-11-08
虽然能编译,但是破坏了面向对象编程的基本要求,所以不可以。
1- 这样的类结构无法实现多态,也不能被其他程序员复用:如果“不需要这个方法”的子类getID()返回空或者无意义的值,在程序的其它位置一定会引起以空指针异常为代表的运行时错误。
2- 如果你发现“一群子类中有个少数几个不需要这个方法”,那么需要重新考虑你的类是否真的具有父子关系。(举个例子:正方形是长方形的子类吗?如果长方形有setLength和setHeight方法,那它们就不是父子关系,因为正方形不需要setLength和setHeight两个方法同时存在,参见权威读物effective java中关于继承的章节)。本回答被提问者采纳