我应该创建一个Superclass我永远不会仅仅为了铸造不同的子类而实例化吗?

时间:2015-10-30 07:32:17

标签: java casting superclass

我刚开始学习Java,我有这个问题。假设我有类A和B.我需要一个变量,它可以是对象类型A或类型B.我相信为A和B创建一个新的超类P将成为它。但我永远不会创建P的实例,我将始终使用A或B类对象。

我认为可能使用P的抽象类会更有意义,因为不会有任何实例,但是我不能将A或B强加给它。那么,这是唯一的方法和正确的方法吗?

提前致谢。

2 个答案:

答案 0 :(得分:1)

你应该创建一个interface,而不是超类。

答案 1 :(得分:0)

经验法则是创建一个界面。

如果这两个类真的有共同的行为,那么你实际上可能会使用抽象的超类来在这个超类中使用通用的实现。

虽然在创建这样的超类时要谨慎,因为通常基于懒惰创建超类,而不是由于类之间的真正共同关系。

如果有接口或超类,则以下语句始终为真

P object = new A(); P object2 = new B();