Using the matching class of isAssignableFrom() method in Java -
i have abstract class called pet lots of classes subclassing it.
public abstract class animal { } public abstract class wildanimal extends animal { } public abstract class pet extends animal { public abstract void mynameis(); } public class dog extends pet { @override public void mynameis() { system.out.println("dog meat"); } public void bark() { system.out.println("woof"); } } public class cat extends pet { @override public void mynameis() { system.out.println("cheshire"); } public void purr() { system.out.println("purr"); } } // somewhere else in project ... list<animal> animals = new arraylist<animal>(); // lots of animals added by: animalmoves(animals); public void petmoves(list<animal> animals) { if (pet.class.isassignablefrom(animals.getclass())) { // dog, cat, mouse, etc. pet = (pet)pet; i want able call overridden mynameis() method each subclassed class, not abstract class' mynameis(). how so?
you don't need isassignablefrom check: parameter declared have type pet. obviously, class pet assignable has type pet, so, check return true.
to answer question: pet.mynameis() you asking.
Comments
Post a Comment