1) Correct, but this has nothing to do with the point I was making.
2) Incorrect. In Oracle 8 there is one constructor, which takes all of the object's members as arguments. This is required as you may not set default values for arguments in the constructor. The workaround is to create static factory methods (NOT constructors) that internally create default values and call the system constructor with all of the attributes set appropriately.
I'm not quite sure why you called this "polymorphic", either. There ain't no sich thang in Oracle 8i. What you're talking about is "overloading", which can be done in 9.