oop - Java - can I extend an instance of a class to make it a parent class instance? -
here small artificial example of trying achieve. have class many parameters - dog
. have child class jumpydog
, want learn how can can "extend" instance of dog
make instance of jumpydog
.
class dog { int age, numberofteeth, grumpiness, manyotherparameters; jumpydog learntojump(int height) { jumpydog jumpy = new jumpydog(this); // not want copy parameters jumpy.jumpheight=height; return jumpy; } } class jumpydog extends dog { int jumpheight; void jump(){} }
or can that:
dog dog=new dog(); dog.makejumpy(); dog.jump()
you can implement decorator pattern in java avoid copying fields initial object during "extension" internally keeping reference it, won't dog
anymore (because dog
class has fields avoiding copy).
class jumpydog { dog measdog; int jumpheight; public jumpydog(dog me) { measdog = me; } public dog measdog() { return measdog(); } void jump(){} }
you can use following:
dog dog=new dog(); jumpydog measjumpy = dog.learntojump(100); measjumpy.jump()
and no, can not following example because dog
hasn't jump()
method:
dog dog=new dog(); dog.makejumpy(); dog.jump() // dog has no method jump
Comments
Post a Comment