Java抽象类来安装其他类
爪哇
理解的简单示例: 两个抽象类,动物和产品
动物有方法生产,以创造新的对象,如牛奶和鸡蛋
扩展抽象类Animal的两个类(鸡和牛)
扩展抽象类产品的两个类(鸡蛋和牛奶)
将有多个鸡、牛、蛋和牛奶的实例
我的问题: 根据动物(鸡或牛)的不同,我的动物抽象类的方法(Product)如何知道要实例化哪个产品(鸡蛋或牛奶)
我尝试的是: 我尝试在我的chicken类中拥有一个egg的静态实例,然后将其作为参数传递给animal构造函数,但这是一个问题,因为我不想在创建chicken实例时创建egg实例。 我想让animal抽象类知道,它是否会根据它被鸡或牛扩展的部分来生成鸡蛋的实例
# 1 楼答案
一种方法是把
produce()
方法也抽象起来,这样Chicken
和Cow
类就必须实现它们另一个可能更糟糕的设计是传入一个
ProductFactory
对象,该对象要么是一个茄子工厂,要么是一个可以分别制造鸡蛋或牛奶的牛奶工厂但我会选择抽象的
produce()
技术