Let's say we have these code:
class Parent {}
class Child1 extends Parent {}
class Child2 extends Parent {}
class Main {
static void method(Parent obj) {}
static void method(Child1 obj) {}
static void method(Child2 obj) {}
public static void main(String[] arg) {
Parent obj1 = new Child1();
Parent obj2 = new Child2();
method(obj1); //call method(Child1 obj)
method(obj2); //call method(Child2 obj)
}
}
How can I get similar effect, so object can be delivered to concrete method instead of the general one?
------------------------Serveral Parameters Example--------------
class Parent {}
class Child1 extends Parent {}
class Child2 extends Parent {}
class Main {
static void method(Parent obj1, Parent obj2) {}
static void method(Child1 obj1, Child1 obj2) {}
static void method(Child1 obj1, Child2 obj2) {}
public static void main(String[] arg) {
Parent obj1 = new Child1();
Parent obj2 = new Child2();
method(obj1, obj1); //call method(Child1 obj1, Child1 obj2)
method(obj1, obj2); //call method(Child1 obj1, Child2 obj2)
}
}
Parent, it seems not work.