I could definitely tell you more, because what you're describing is a well-understood paradigm, but let's step back a little bit and try to get to the root of your problem first.
You've got a method in class Person which creates a bunch of instances of class Person.
You want to be able to subclass it and arrange things so that when you call this method from a subclass JavaStudent, it creates instance of JavaStudent instead.
Is that it?
If Create() is a static method, then it simply doesn't
know which Class it was "called on", so just subclassing is not enough. There's no way to do this without telling the method what kind of object to create, by passing it a parameter, or by some other means. Simple as that.
If Create() is nonstatic, then it
does know what class it's being called on, but then of course, you need an object of the right class to call it on, which is a problem.
So what we're talking about is called the
"Factory Method design pattern." You can find material about it all over the Web. Have a look at the linked web page, find a few others for yourself, then come back and ask questions if you need it.