Java 如何获得儿童课程?
我想创建一个子类的对象 超过100个班级扩展了MasterClass 大师班是Java 如何获得儿童课程?,java,Java,我想创建一个子类的对象 超过100个班级扩展了MasterClass 大师班是 public class MasterClass{ int key; String value; String displayValue; boolean status; } public class User extends MasterClass{ public User(){ } } public class Customer extends MasterClass{ Strin
public class MasterClass{
int key;
String value;
String displayValue;
boolean status;
}
public class User extends MasterClass{
public User(){ }
}
public class Customer extends MasterClass{
String productName;
public Customer (){ }
}
等等
我将从客户端获得一个MasterClass对象,我想将该对象类型转换为相应的对象
if(masterClass instanceof User) {
User a_user = (User) a_ masterClass;
…
} else if(masterClass instanceof Customer) {
Customer a_customer = (Customer) a_ masterClass;
…
}
如果我这样做了,我会得到100个其他的如果
请让我知道,如果没有其他条件,我如何实现这一目标
提前感谢。也许您可以将泛型与约束T扩展MasterClass一起使用?也许您可以将泛型与约束T扩展MasterClass一起使用?按照Java的意图使用多态性和泛型 多态性允许您在对象上调用对每种类型行为不同的方法。实现这一点的最简单方法是在基类
MasterClass
中提供一个抽象方法,然后在每个扩展类中使用不同的功能覆盖它。您可能正在寻找类似以下内容:
class MasterClass {
int age;
// ...
public abstract void doWork();
public int getAge() { return age; }
// .. more methods
}
class User extends MasterClass {
// customize User here
@Override
public void doWork() { /* User does work in some way */ }
}
class Customer extends MasterClass {
// customize Customer here
@Override
public void doWork() { /* Customer does work in some other way */ }
}
// ...
如果你不太熟悉,这是一个很好的入门教程
如果不允许您更改类,您可以填充一个查找表,如HashMap
,在该表中,您可以为您拥有的每种类型的人分配不同的类
此外,您可能需要使用。泛型允许您捕获和限制传递给方法的对象的类型。按照Java的意图使用多态性和泛型 多态性允许您在对象上调用对每种类型行为不同的方法。实现这一点的最简单方法是在基类
MasterClass
中提供一个抽象方法,然后在每个扩展类中使用不同的功能覆盖它。您可能正在寻找类似以下内容:
class MasterClass {
int age;
// ...
public abstract void doWork();
public int getAge() { return age; }
// .. more methods
}
class User extends MasterClass {
// customize User here
@Override
public void doWork() { /* User does work in some way */ }
}
class Customer extends MasterClass {
// customize Customer here
@Override
public void doWork() { /* Customer does work in some other way */ }
}
// ...
如果你不太熟悉,这是一个很好的入门教程
如果不允许您更改类,您可以填充一个查找表,如HashMap
,在该表中,您可以为您拥有的每种类型的人分配不同的类
此外,您可能需要使用。泛型允许您捕获并限制传递给方法的对象的类型。使用设计模式的基本概念,您可以在尝试初始化的对象中创建这样的构造函数
MasterClass masterClass;
public MyCreatorOject(MasterClass masterClass)
{
this.masterClass = masterClass;
}
稍后,当您创建对象时,它可以
new MyCreatorObject(new User());
或
使用设计模式的基本概念,您可以在尝试初始化的对象中创建这样的构造函数
MasterClass masterClass;
public MyCreatorOject(MasterClass masterClass)
{
this.masterClass = masterClass;
}
稍后,当您创建对象时,它可以
new MyCreatorObject(new User());
或
建议:阅读以提出可读性问题如果您有一个类型层次结构,其中
User
和Customer
扩展MasterClass
,请认真考虑您的设计。MasterClass
为您提供了哪些您无法通过组合解决的问题?您打算如何处理每个铸造参考(a_用户
等)?在不知道更多的情况下,我的直觉是多态性可以通过在MasterClass
@Matthias上有一个方法来实现,因为您的重播我已经更改了代码,请检查它。帮助是否需要完整的建议:阅读以放置可读的问题如果您有一个类型层次结构,其中User
和Customer
扩展MasterClass
,请真正考虑您的设计。MasterClass
为您提供了哪些您无法通过组合解决的问题?您打算如何处理每个铸造参考(a_用户
等)?在不知道更多的情况下,我的直觉是多态性可以通过在MasterClass
@Matthias上有一个方法来实现,因为您的重播我已经更改了代码,请检查它。需要全部帮助吗