java我应该创建一个超类吗?我永远不会只是为了铸造不同的子类而引用它?
我刚开始学习Java,我有一个问题。假设我有A类和B类。我需要一个变量,它可以是对象类型A或类型B。我相信为A和B创建一个新的超类P会使它成为一个变量。但我永远不会创建P的实例,我会一直使用类型A或B对象
我想,也许对p使用抽象类会更有意义,因为永远不会生成它的实例,但是我不能对它强制转换A或B。那么,这是唯一正确的方法吗
提前谢谢
你可以在下面搜索框中键入要查询的问题!
我刚开始学习Java,我有一个问题。假设我有A类和B类。我需要一个变量,它可以是对象类型A或类型B。我相信为A和B创建一个新的超类P会使它成为一个变量。但我永远不会创建P的实例,我会一直使用类型A或B对象
我想,也许对p使用抽象类会更有意义,因为永远不会生成它的实例,但是我不能对它强制转换A或B。那么,这是唯一正确的方法吗
提前谢谢
# 1 楼答案
您应该创建一个interface,而不是一个超类
# 2 楼答案
经验法则是创建一个接口
如果这两个类真的有共同的行为,那么可能实际上可以使用抽象超类在这个超类中实现共同的实现
尽管如此,在创建这样一个超类时要谨慎,因为超类通常是基于惰性而创建的,而不是因为类之间真正的公共关系
有了接口或超类,下面这样的语句总是正确的
P object = new A();
P object2 = new B();