I'm not sure what you're trying to do. Maybe this?
A one = new A();
Ab two = (Ab)one;
That won't work because one is an instance of A which IS NOT an Ab. If you really need an Ab you might do what you suggested:
Ab two = new Ab(one);
This is a good time to ask yourself if "extends" was the right way to define Ab. An alternative is to make Ab just extend Object, hold a reference to an A instance, and pass any method calls through to that instance. For
polymorphism you could make A and Ab implement the same interface for the methods on A.
Does that fit the problem?